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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
<?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; } } } } ?> |
Schreibe einen Kommentar