FuelMedlem sedan okt. 20001 285 inlägg Jag är helt nollställd .. vet inte vad jag har gjort för fel .. försöker skapa lite kod som kollar i en mapp efter andra mappar ..
<?php
// Fuel
$mod_dir = './mod';
function ed_collect_mods($mod_dir)
{
$anum = 0;
$mods = array();
$mod_dir = @opendir($mod_dir);
while (false !== ($mod = @readdir($mod_dir)))
{
if ((is_dir($mod)) && ($mod != ".") && ($mod != "..")) {
$mods[$anum] = $mod_dir . '/' . $mod;
$anum++;
}
}
@closedir($mod_dir);
return $mods;
}
ed_collect_mods($mod_dir);
echo print_r($mods);
?>
Du har 2 fel:
- Du använder $mod_dir = opendir(...); vilket sätter mod_dir till resursen som öppnar katalogen. Dvs $mod_dir blir om jag inte minns helt fel något i stil med "Resource #1" hur som helst är de fel eftrsom du använder $mods[index] = $mod_dir . "/" ...
Sen $mods är en variabel i local scope (i funktionen) och du glömer att spara vad funktionen skickar tillbaka:
$mods = ed_collection_mods(...);
Inte testat men dessa ändringar borde göra susen:
<?php
// Fuel
$mod_dir = './mod';
function ed_collect_mods($mod_dir)
{
$mods = array();
$dir_handle = @opendir($mod_dir);
while (false !== ($mod = @readdir($dir_handle)))
{
if ((is_dir($mod)) && ($mod != ".") && ($mod != "..")) {
$mods[] = $mod_dir . '/' . $mod;
}
}
@closedir($dir_handle);
return $mods;
}
$mods = ed_collect_mods($mod_dir);
echo print_r($mods);
?>
FuelMedlem sedan okt. 20001 285 inlägg Så .... herregud :r is_dir($mod) --> is_dir($mod_dir.'/'.$mod) :r
<?php
$mods = array();
$dir_handle = @opendir($mod_dir);
while (false !== ($mod = @readdir($dir_handle)))
{
if ((is_dir($mod_dir.'/'.$mod)) && ($mod != ".") && ($mod != "..")) {
$mods[] = $mod;
}
}
@closedir($dir_handle);
?>