Listen Sie alle Dateien und Ordner in einem Verzeichnis mit der rekursiven PHP-Funktion auf
Lesezeit: 6 Minuten
Benutzer3412869
Ich versuche, alle Dateien in einem Verzeichnis durchzugehen, und wenn es ein Verzeichnis gibt, gehe durch alle seine Dateien und so weiter, bis es keine weiteren Verzeichnisse mehr gibt, zu denen ich wechseln kann. Jedes einzelne verarbeitete Element wird in der folgenden Funktion zu einem Ergebnisarray hinzugefügt. Es funktioniert nicht, obwohl ich nicht sicher bin, was ich tun kann/was ich falsch gemacht habe, aber der Browser läuft wahnsinnig langsam, wenn dieser Code unten verarbeitet wird. Jede Hilfe ist willkommen, danke!
Wenn das Verzeichnis leer ist, gibt die obige Funktion die Gesamtzahl 1 zurück
– Ghulam Abbas
29. Mai 2019 um 17:21 Uhr
verwenden realpath() gibt den Zielnamen von symbolischen Links im selben Verzeichnis an. Probieren Sie zum Beispiel das Beispiel auf “/usr/lib64” auf einem Linux-Rechner aus.
– MattBianco
24. Oktober 2019 um 10:55 Uhr
zkanoca
$rii = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('path/to/folder'));
$files = array();
foreach ($rii as $file) {
if ($file->isDir()){
continue;
}
$files[] = $file->getPathname();
}
var_dump($files);
Dadurch erhalten Sie alle Dateien mit Pfaden.
Gibt es keine Möglichkeit, dies ohne das eingebaute Objekt zu tun?
– Benutzer3412869
16. Juli 2014 um 14:57 Uhr
Oder Sie können die Bedingung umkehren: if (!$file->isDir()) $files[] = $file->getPathname();. Um eine Zeile zu sparen.
** Die Punkte sind die Punkte der ungeordneten Liste.
Hoffe das hilft.
Da Sie zwei Jahre nach dem Stellen der Frage eine Antwort hinzugefügt haben: Warum sollte ich Ihre gegenüber der akzeptierten Antwort oder der idiomatischen RecursiveDirectorIterator-Lösung verwenden?
– Gordon
23. Mai 2016 um 6:40 Uhr
Ich habe erst vor ein paar Monaten angefangen, PHP zu lernen. Ich habe nach einer Lösung für diese Frage gesucht, aber auch versucht, eine eigene Lösung zu finden. Ich habe es gepostet und dachte, vielleicht hilft meine Lösung jemandem.
– Koushik Das
25. Mai 2016 um 2:53 Uhr
Die einzige, die für mich auf einer PHP-Website funktioniert hat, die auf einem IIS Windows 2012-Server basiert
– Melomann
18. Mai 2018 um 9:21 Uhr
9575500cookie-checkListen Sie alle Dateien und Ordner in einem Verzeichnis mit der rekursiven PHP-Funktion aufyes
RecursiveDirectoryIterator
– u_mulder
16. Juli 2014 um 14:49 Uhr
@ user3412869 Rufen Sie die Funktion nicht auf, wenn Sie dies getan haben
.
oder..
. Siehe meine Antwort.– Sky Voyager
16. Juli 2014 um 15:10 Uhr