In PHP gibt es (nach meinem Wissen) keine einfache Methode um die Dateien eines Ordner rekursiv zu ermitteln. Möchte man die Dateien eines Ordners ohne dessen Unterordner ermitteln, so kann man scandir nutzen. Auf Basis dessen, habe ich eine Funktion geschrieben, welche diesen Operation auf Wunsch auch rekursiv ausführt:
function GetFiles($directory, $recursiv) { if($directory[strlen($directory)-1]!='/') $directory.="/"; $files = array(); $subDirectories = array(); $scandirFiles = scandir($directory); //Read files foreach ($scandirFiles as $file) { if($file=="." || $file=="..") continue; if(is_dir($directory.$file)) { array_push($subDirectories, $directory.$file); } else if(is_file($directory.$file)) { array_push($files, $directory.$file); } } if($recursiv) { foreach ($subDirectories as $dirs) { $subDirectoryFiles=GetFiles($dirs, $recursiv); $files = array_merge($files, $subDirectoryFiles); } } return $files; }
Genutzt wird die Funktion wie folgt:
$files = GetFiles('images/', true);
Der Rückgabewert ist ein Array, in welchem die Dateien mit ihren relativen Pfaden enthalten sind.
Och.
http://php.net/manual/en/class.recursivedirectoryiterator.php
Das Ding gefiel mir nicht ;)