Verzeichnisse mit PHP lesen   Mit PHP ein Verzeichnis mit Ordnern und Dateien einlesen und anzeigen. Der Beitrag zeigt ein kurzes Codesegment.

____________

« Home

Manchmal ist es hifreich die Verzeichnisse, also Ordner, eines Directorys einlesen zu können. Das folgende Script liest alles was im aktuellen Pfad steht:

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 ?>

Es gibt eine Liste mit dem gesamten Inhalt aus und zeigt den Typ (file oder dir) an.

1. Dateiname: . (typ) dir
2. Dateiname: .. (typ) dir
3. Dateiname: datei1.txt (typ) file
4. Dateiname: datei2.txt (typ) file
5. Dateiname: ordner (typ) dir

Soll zudem ein Unterverzeichnis 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 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 Ordner befinden, werden diese angezeigt. Dateien werden nicht mehr angezeigt.



Weiter stöbern


User ID speichern

Steuern Sie die SPAM-Flut in Kommentaren und erlauben Sie nur einen Kommentar in 48h. Dieser Beitrag zeigt wie es geht.

Smarty installieren

Teil 2 - des Workshops zur Template-Engine. Installieren Sie Smarty auf dem Webserver Ihres Providers. Legen Sie ein paar grundlegende Ordner an um loszulegen.


Autor: Oliver Lohse   Datum: 2020-07-30   Kategorie: PHP   Schlagworte: CSS • Templates • Style • Layout