Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich mit PHP rekursiv ein Verzeichnis durchsuchen und alle Datei- und Ordnerpfade abrufen?

Wie kann ich mit PHP rekursiv ein Verzeichnis durchsuchen und alle Datei- und Ordnerpfade abrufen?

DDD
DDDOriginal
2024-12-15 06:46:15249Durchsuche

How Can I Recursively Walk a Directory and Get All File and Folder Paths Using PHP?

Rekursives Durchsuchen eines Verzeichnisses mit einer PHP-Funktion

Wenn Sie ein Verzeichnis und seine Unterverzeichnisse durchsuchen und dabei jede darin enthaltene Datei und jeden Ordner suchen müssen Darin können Sie eine rekursive PHP-Funktion erstellen, um die Aufgabe zu erledigen. So geht's:

Rekursive Funktionsimplementierung

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;
}

Verwendung

Rufen Sie die Funktion wie folgt auf:

$results = getDirContents('/xampp/htdocs/WORK');
var_dump($results);

Beispiel Ausgabe

Die Funktion gibt ein Array zurück, das die Pfade zu allen Dateien und Ordnern im angegebenen Verzeichnis, einschließlich Unterverzeichnissen, enthält. Bei gegebenem Verzeichnis /xampp/htdocs/WORK könnte die Ausgabe beispielsweise so aussehen:

array (size=12)
  0 => string '/xampp/htdocs/WORK/iframe.html' (length=30)
  1 => string '/xampp/htdocs/WORK/index.html' (length=29)
  2 => string '/xampp/htdocs/WORK/js' (length=21)
  3 => string '/xampp/htdocs/WORK/js/btwn.js' (length=29)
  4 => string '/xampp/htdocs/WORK/js/qunit' (length=27)
  5 => string '/xampp/htdocs/WORK/js/qunit/qunit.css' (length=37)
  6 => string '/xampp/htdocs/WORK/js/qunit/qunit.js' (length=36)
  7 => string '/xampp/htdocs/WORK/js/unit-test.js' (length=34)
  8 => string '/xampp/htdocs/WORK/xxxxx.js' (length=30)
  9 => string '/xampp/htdocs/WORK/plane.png' (length=28)
  10 => string '/xampp/htdocs/WORK/qunit.html' (length=29)
  11 => string '/xampp/htdocs/WORK/styles.less' (length=30)

Das obige ist der detaillierte Inhalt vonWie kann ich mit PHP rekursiv ein Verzeichnis durchsuchen und alle Datei- und Ordnerpfade abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Spezial-Array IINächster Artikel:Spezial-Array II