<?php
/**
* Lesen Sie den kompletten Inhalt eines Verzeichnisses aus. Der erste Parameter ist der Pfad zum
* Verzeichnis. Als zweiten Parameter kannst du ein Array mit Endungen angeben, welche
* ausschließlich ausgelesen werden sollen. Um eine Sonderfilterung anzuwenden, kannst du hier
* auch nur einen String angeben. "dir" oder "dirs" liest nur Verzeichnisse aus. "nodir" bzw.
* "nodirs" liest nur Dateien aus. Der dritte, bool'sche, Parameter gibt an, ob Dateien, die mit
* einem Punkt beginnen, ebenfalls ausgelesen werden sollen. Dies sind normalerweise versteckte
* Dateien (unter Unix) oder der Pfad für das aktuelle / übergeordnete Verzeichnis.
* Zurückgegeben wird ein Array mit sämtlichen Dateien im Verzeichnis. Nur im Fehlerfall wird
* FALSE zurückgegeben.
*
* @param string $path [, mixed $endungen = NULL [, bool $dot_files = FALSE]]
* @return array
* @see http://www.php-function.de/funktion/dateisystem/get_dir_contents/
*/
function get_dir_contents($path, $endungen = NULL, $dot_files = FALSE){
if(!is_dir($path)) return FALSE;
$dir = @opendir($path);
while($files = @readdir($dir)){
$end = strtolower(strrchr($files, "."));
if($files[0] == "."){ // Blende Punkt-Dateien aus
if($dot_files == true)
$return[] = $files;
continue;
}
if(is_array($endungen)){ // Endungen prüfen
if(in_array($end, $endungen))
$return[] = $files;
}else{ // Endungen ist kein Array: Sonderfilterung
if($endungen == NULL){
$return[] = $files;
continue;
}
switch(strtolower($endungen)){ // Sonderfilterung switchen
case "dir": case "dirs": // Nur Ordnernamen
if(is_dir($dir."/".$files))
$return[] = $files;
break;
case "nodirs": case "nodir":
if(!is_dir($dir."/".$files))
$return[] = $files;
break;
}
}
}
}
?>