Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich Dateien und Ordner in PHP ohne Leistungsprobleme rekursiv finden?
Rekursives Suchen von Dateien und Ordnern mit PHP
Um den Inhalt eines Verzeichnisses und aller Unterverzeichnisse zu durchsuchen, wird eine rekursive Funktion verwendet. Der bereitgestellte Code weist jedoch ein Leistungsproblem auf, wodurch der Browser erheblich langsamer wird.
Das Problem
Die Funktion schließt „.“ nicht aus. und „..“ Verzeichnisse aus den rekursiven Aufrufen, was zu einer Endlosschleife und langsamer Ausführung führt.
Die Lösung
Um dieses Problem zu beheben, haben wir den Code wie folgt geändert folgt:
function getDirContents($dir, &$results = array()) { $files = scandir($dir); foreach ($files as $key => $value) { $path = realpath($dir . DIRECTORY_SEPARATOR . $value); if (!is_dir($path)) { $results[] = $path; } else if ($value != "." && $value != "..") { getDirContents($path, $results); $results[] = $path; } } return $results; }
Ausschluss von „.“ und „..“
Wir haben Bedingungen hinzugefügt, um „.“ auszuschließen. und „..“ Verzeichnisse aus den rekursiven Aufrufen. Diese Verzeichnisse stellen jeweils das aktuelle und das übergeordnete Verzeichnis dar, und ihre Einbeziehung würde eine Endlosschleife erzeugen.
Verwendung
Um die Funktion zu verwenden, geben Sie einfach den Pfad zum an Verzeichnis, das Sie durchqueren möchten:
var_dump(getDirContents('/xampp/htdocs/WORK'));
Dieser Code gibt ein Array zurück, das die vollständige Liste der Dateien und Ordner im angegebenen Verzeichnis enthält. Jeder Eintrag ist der vollständige Pfad zur Datei oder zum Ordner.
Das obige ist der detaillierte Inhalt vonWie kann ich Dateien und Ordner in PHP ohne Leistungsprobleme rekursiv finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!