PHP - Dateien im Verzeichnis rekursiv auflisten, mit Filter

Sollen Verzeichnisse nach Dateien durchsucht und dabei alle vorhandenen Unterverzeichnisse mit berücksichtigt werden (rekursive Suche), bietet sich das folgenden Script-Beispiel an. Die Suche kann mittels Filter auf bestimmte Dateitypen eingeschränkt werden, wobei die Dateiendungen frei gewählt werden können.


<?php

// Dateien rekursiv auflisten mit Filter für mehrere Dateiendungen

$startdir "./"// Auszulesendes Verzeichnis
$extension '/\.(?:jpg|gif|html)$/i'// Dateiendungen (hier jpg, gif, html)

$iterator = new RecursiveIteratorIterator(
    new 
RecursiveDirectoryIterator($startdir)
);
$selected_files = new RegexIterator($iterator$extension);

foreach (
$selected_files as $file) {
    if (!
$file->isFile()) {
        continue;
    }
    echo 
$file->getPathname() . "<br>";
}
?>

Dateien im Verzeichnis rekursiv auflisten, ohne Filter


<?php

function directoryScan($dir) {
    if (isset(
$dir) && is_readable($dir)) {
        
$directionList = array();

        
$dir realpath($dir);

        
$objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dirFilesystemIterator::SKIP_DOTS), RecursiveIteratorIterator::SELF_FIRST);

        
$x 0;
        foreach (
$objects as $entry => $object) {
            
$getpath str_replace($dir''$entry);
            
$size ceil($object->getSize() / 1024);
            
$changed date($object->getMTime());

            
$directionList[$x]['path'] = $getpath;
            
$directionList[$x]['size'] = $size;
            
$directionList[$x]['changed'] = $changed;
            
$x++;
        }

        return 
$directionList;
    }
}

$result directoryScan('bilder');

echo 
'<pre>';
print_r($result);
?>

Bausteine  Alle Anzeigen

Eine zufällige Auswahl von Codeschnipseln aus den Bereichen HTML, CSS, PHP, JavaScript und MySQL.

<canvas> Zeichnen

CSS - Container mit Eselsohren

PHP - Verzeichnisgröße auslesen 2

JavaScript - Überprüfen ob ein String in Großbuchstaben geschrieben ist

MySQL - Datensatz Wert um 5% erhöhen