Hab den Fehler nun selbst gefunden. Und zwar lags am
korrekt wäre der komplette OrdnerpfadPHP-Code:elseif (is_dir($item))
PHP-Code:elseif (is_dir($path))
Hallo zusammen,
meine Funktion soll, wenn entsprechende Variablen true, alle Dateien des aktuellen Ordners, sowie Unterordner in ein Array packen und zurück geben.
Jedoch funktioniert dies nur vertikal, nicht jedoch horizontal. Heißt, dass Nachbarverzeichnisse, obwohl sie erfasst wurden, nicht durchsucht werden. Es wird immer nur das 1. Unterverzeichnis durchsucht.
Ich hab keine Ahnung, wo da der Fehler liegen soll und warum die while-Schleife vorher abbricht. Ein Fehler wird nicht ausgegeben.
Hier mal der Code.
Im netz habe ich so einge Funktionen gefunden, die Verzeichnisinhalte direkt beim Durchlauf auszugeben. Aber das hat mich leider nicht weiter gebracht.PHP-Code:# der Aufruf aus einer anderen Klasse heraus
$dir_content = Misc::readDir (FILES_PATH);
# die Funktion
static public function readDir ($dir, $sub_dirs = true, $files_only = true, $paths = array())
{
# cut last "/" from dir, if existing
$dir_elements = explode('/', $dir);
if (empty($dir_elements[count($dir_elements)-1]))
array_pop($dir_elements);
$dir = implode ('/', $dir_elements);
# go to dir
chdir($dir);
$handle = opendir($dir);
while (($item = readdir($handle)) !== false)
{
# skip files/dirs with a point in the first place
if (strpos($item, '.') === 0)
continue;
$path = $dir.'/'.$item;
#echo $path."\n";
# its a file
if (is_file($item))
{
array_push ($paths, $path);
}
# its a directory
elseif (is_dir($item))
{
if (!$files_only)
array_push ($paths, $path);
# repeat for dir, if repeating set
if ($sub_dirs)
$paths = array_merge ($paths, self::readDir ($path, $sub_dirs, $files_only, $paths));
}
}
closedir($handle);
return $paths;
}
The difference between theory and practice is
that in theory there is no
difference between theory and practice
but in practice there is
Hab den Fehler nun selbst gefunden. Und zwar lags am
korrekt wäre der komplette OrdnerpfadPHP-Code:elseif (is_dir($item))
PHP-Code:elseif (is_dir($path))
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)