Verzeichnisse auslesen

  • Arbeiten Ihre selbst programmierten Skripte mit vielen Dateien oder möchten Sie etwas FTP-ähnliches auf Ihrer Homepage realisieren, so ist das Auslesen von Verzeichnissen nicht wegzudenken. Dieser Codeschnipsel stellt eine Funktion bereit, mit der Sie schnell und einfach Verzeichnisse auslesen können. Nachfolgend gleich die Funktion, welche Sie zur Nutzung lediglich noch in Ihr eigenes Skript kopieren oder einbinden müssen. <?php function get_files(<#$>directory) { <#$>dp = opendir(<#$>directory); <#$>files = array(); while(<#$>file = readdir(<#$>dp)) { if(<#$>file != '.' && <#$>file != '..') { array_push(<#$>files, <#$>file); } } closedir(<#$>dp);sort(<#$>files); return(<#$>files);}?> Die Behandlung von Verzeichnissen unter PHP funktioniert ähnlich wie die von Dateien. Zunächst muss das Verzeichnis, welches durch <#$>directory übergeben wurde, geöffnet werden. Und dann können die enthaltenen Dateien auch schon mit readdir() in einer while-Schleife gefunden und die Dateinamen in einem Array gespeichert werden. Zu beachten ist hier, dass readdir() auch '.' und '..' findet. Jenes wird durch die if-Verzweigung in der Schleife herausgefiltert. Schließlich ordnen wir die gefundenen Dateinamen im Array aufsteigend durch sort(). Die Verwendung der obigen Funktion ist nun denkbar einfach: Das gewünschte Verzeichnis (vorzugsweise als absoluter Pfad) als Parameter beim Aufruf der Funktion get_files() übergeben: Das Ergebnis ist ein Array mit den Dateinamen aller Dateien im angegebenen Verzeichnis. Die Funktion ist allerdings nicht perfekt, denn Fehler durch Übergabe eines nicht existierenden Verzeichnisses fängt PHP hart ab. <?php <#$>dir_content = get_file('/files/images/'); for(<#$>i=0; <#$>i<count(<#$>dir_content); <#$>i++) {echo(<#$>dir_content[<#$>i] . ''); }?>

  • hallo.
    habe gerade eure schleicfe ausprobiert, die ihr als beispiel oben anführt.
    leider funktioniert sie nicht, da 1. bei aufruf ein -s fehlt(get_fileS) aber selbst danach geht es nicht.
    bekomme foldenden fehler:
    Warning: opendir(/ausk/) [function.opendir]: failed to open dir: Invalid argument in ***index.php on line 6
    Warning: readdir(): supplied argument is not a valid Directory resource in ***index.php on line 8
    Warning: closedir(): supplied argument is not a valid Directory resource in ***index.php on line 15
    *** steht für meinen dateipfad.
    wo liegt das problem??