Heim > Backend-Entwicklung > PHP-Tutorial > Wie finde ich Dateien in Unterordnern mit PHP: „glob()' vs. „RecursiveDirectoryIterator'?

Wie finde ich Dateien in Unterordnern mit PHP: „glob()' vs. „RecursiveDirectoryIterator'?

Susan Sarandon
Freigeben: 2024-11-08 21:07:02
Original
615 Leute haben es durchsucht

How to Find Files in Subfolders with PHP: `glob()` vs. `RecursiveDirectoryIterator`?

So suchen Sie mit PHP glob() nach Dateien in Unterordnern

So suchen Sie mit der glob()-Funktion von PHP nach Dateien in Unterordnern die folgenden Ansätze:

Rekursive Suche mit glob()

Verwenden Sie die Funktion glob() mit rekursiver Durchquerung:

function rglob($pattern, $flags = 0) {
    $files = glob($pattern, $flags); 
    foreach (glob(dirname($pattern).'/*', GLOB_ONLYDIR|GLOB_NOSORT) as $dir) {
        $files = array_merge(
            [],
            ...[$files, rglob($dir . "/" . basename($pattern), $flags)]
        );
    }
    return $files;
}
Nach dem Login kopieren

Beispiel:

$result = rglob($_SERVER['DOCUMENT_ROOT'] . '/test.zip');
Nach dem Login kopieren

Rekursive Iteration mit RecursiveDirectoryIterator

Alternativ können Sie RecursiveDirectoryIterator mit regulärem Ausdrucksabgleich verwenden:

function rsearch($folder, $regPattern) {
    $dir = new RecursiveDirectoryIterator($folder);
    $ite = new RecursiveIteratorIterator($dir);
    $files = new RegexIterator($ite, $regPattern, RegexIterator::GET_MATCH);
    $fileList = array();
    foreach($files as $file) {
        $fileList = array_merge($fileList, $file);
    }
    return $fileList;
}
Nach dem Login kopieren

Beispiel:

$result = rsearch($_SERVER['DOCUMENT_ROOT'], '/.*\/test\.zip/');
Nach dem Login kopieren

Beachten Sie, dass RecursiveDirectoryIterator verfügbar ist in PHP5, während glob() seitdem vorhanden ist PHP4. Beide Methoden suchen effektiv nach Dateien in Unterverzeichnissen.

Das obige ist der detaillierte Inhalt vonWie finde ich Dateien in Unterordnern mit PHP: „glob()' vs. „RecursiveDirectoryIterator'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage