Lieber Schnitzel-Onkel,
ich verwende jetzt schon seit geraumer Weile eine Funktion, die ich mir aus den User-Comments auf PHP.net abgeschaut habe. Hier meine Version:
/* Funktion für Verzeichnisbaum
@$pfad: relativer Pfad; relativ zum $_SERVER['SCRIPT_SELF']
@$modus: (verzeichnisse|dateien|default)
@$rekursiv: Unterverzeichnisse auch? (true|false) */
function verzeichnis_inhalt($pfad, $modus = 'alle', $rekursiv = true) {
$pfad = preg_replace('~^(.*)/$~', '\\1', $pfad); // letzten Slash entfernen
$inhalt = array();
$zugriff = opendir($pfad);
while ($eintrag = readdir($zugriff)) {
if (!preg_match('~^\.\.?$~',$eintrag)) {
switch ($modus) {
case 'verzeichnisse':
if (is_dir("$pfad/$eintrag"))
$inhalt[] = "$pfad/$eintrag";
break;
case 'dateien':
if (is_file("$pfad/$eintrag"))
$inhalt[] = "$pfad/$eintrag";
break;
default:
$inhalt[] = "$pfad/$eintrag";
}
if ($rekursiv && is_dir("$pfad/$eintrag")) {
$inhalt2 = verzeichnis_inhalt("$pfad/$eintrag", $modus, $rekursiv);
foreach ($inhalt2 as $eintrag2)
$inhalt[] = $eintrag2;
}
}
}
closedir($zugriff);
return $inhalt;
}
Liebe Grüße aus Ellwangen,
Felix Riesterer.