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($dir, FilesystemIterator::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.
<span> Allgemeines Inline-Element