Verzeichnis mit PHP Script einlesen

Manchmal ist es hifreich die Verzeichnisse, also Ordner, eines Directorys mit einem kleinen PHP Script einlesen zu können. Das folgende Script liest alles was im aktuellen Pfad steht und gibt den Inhalt aus:

001  <?php
002    $verzeichnis = '.'; // aktuelles Dir.
003    echo '<ol>';
004
005    if (is_dir ($verzeichnis)) {
006      if ($handle = opendir($verzeichnis)) {
007        while (($file = readdir($handle)) !== false) {
008          echo '<li>Dateiname: '.$file.' (typ) '.filetype($file).'</li>';
009        }
010        closedir($handle);
011      }
012    }
013    echo '</ol>';
014  ?>

Das PHP Script gibt eine Liste mit dem gesamten Inhalt aus und zeigt die diversen Datei-Typ an. Es unterscheidet, ob es sich um normale Dateien oder Ordner handelt.

Dateiname: . (typ) dir
Dateiname: .. (typ) dir
Dateiname: datei1.txt (typ) file
Dateiname: datei2.txt (typ) file
Dateiname: ordner (typ) dir

Soll zudem ein Unterverzeichnis mittels PHP durchsucht werden, dann muss der vollständige Pfad in filetype() Berücksichtigung finden, es erfolgt ansonsten die Ausgabe eines Fehlers, da filetype() die Source nicht finden kann:

001  <?php
002    $verzeichnis = 'texte';
003    echo '<ol>';
004
005    if (is_dir($verzeichnis)) {
006      if ($handle = opendir($verzeichnis)) {
007        while (($file = readdir($handle)) !== false) {
008          echo '<li>Dateiname: '. $file. ' (typ) '. filetype($verzeichnis.'/'.$file).'</li>';
009        }
010        closedir($handle);
011      }
012    }
013    echo '</ol>';
014  ?>

Soll das aktuelle '.' und das übergeordnete Verzeichnis '..' bei der Ausgabe des PHP Scriptes ausgeschlossen werden, sollte ein if in Zeile 008 in etwa so angepasst werden:

001  <?php
002    $verzeichnis = 'texte';
003    echo '<ol>';
004
005    if (is_dir($verzeichnis)) {
006      if ($handle = opendir($verzeichnis)) {
007        while (($file = readdir($handle)) !== false) {
008          if (filetype($verzeichnis.'/'.$file) == 'dir' && $file != '.' && $file != '..') {
009            echo '<li>Ordner: '. $file.'</li>';
010          }
011        }
012        closedir($handle);
013      }
014    }
015    echo '</ol>';
016  ?>

Sofern sich im Verzeichnis texte etwaige Ordner befinden, werden diese durch PHP angezeigt. Dateien werden nicht mehr angezeigt und ausgeblendet.


von Oliver Lohse