www.PHP-Kurs.com

PHP lernen für Einsteiger
und Fortgeschrittene

PHP-Tutorial mit Videos

Sie befinden sich: Startseite » PHP für Fortgeschrittene » Verzeichnis einlesen

Verzeichnis einlesen mit PHP

Je nach Aufgabenstellung ist es praktisch, den Inhalt eines Verzeichnisses auslesen zu lassen. Dazu geht man folgenden Weg:

Das gewünschte Verzeichnis wird in einer Variablen hinterlegt, im folgenden Beispiel in der Variable $verzeichnis

Dann wird überprüft, ob es sich wirklich um ein Verzeichnis handelt.

Ist es ein Verzeichnis wird über opendir ein Handle erstellt, mit dem dann weitergearbeitet wird.

Jetzt wird das Verzeichnis mit readdir in einer while-Schleife durchlaufen, bis das Verzeichnisende erreicht ist. Wir erhalten von der Funktion ein false als Rückgabewert und beenden die while-Schleife.

Innerhalb der Schleife können wir nun mit der Funktion filetype testen, ob es sich um eine Datei (file) oder um ein Unterverzeichnis (dir) handelt.

Im Beispiel wird der Inhalt des aktuellen Verzeichnisses ausgegeben.

PHP-Quellcode: Verzeichnis einlesen mit PHP

<?php
// Der Punkt steht für das Verzeichnis, in der auch dieses
// PHP-Programm gespeichert ist
$verzeichnis = ".";
echo "<ol>";

// Test, ob es sich um ein Verzeichnis handelt
if ( is_dir ( $verzeichnis ))
{
    // öffnen des Verzeichnisses
    if ( $handle = opendir($verzeichnis) )
    {
        // einlesen der Verzeichnisses
        while (($file = readdir($handle)) !== false)
        {
            echo "<li>Dateiname: ";
            echo $file;

            echo "<ul><li>Dateityp: ";
            echo filetype( $file );
            echo "</li></ul>\n";
        }
        closedir($handle);
    }
}
echo "</ol>";
?>

Interessant wird die Weiterverarbeitung der Dateinamen. Dazu eignen sich besonders Array - siehe das Kapitel Arrays. Als Beispiel für die Anwendung ist das Kapitel Bildergalerie gedacht.

Verzeichnis auslesen und als Links anzeigen

Möchte man die Dateien der Liste im Browser als einzelne Links zum Anklicken anzeigen, benötigt man nur den typischen HTML-Link <a href="...">.

Anstelle von echo $file; wird im Code folgende Zeile eingegeben:

echo "<a href=\"$file\">$file</a> ";

Jetzt werden alle Dateien zum Anklicken angezeigt. Das ergibt nur bedingt Sinn. Daher kann hier per if-Anfrage dann es auf bestimmte Dateitypen beschränkt werden, z.B. nur die Bildformate wie JPG, GIF und PNG.

Verzeichnis in Array einlesen mit PHP und scandir()

Möchte man den Inhalt eines Verzeichnisses (sowohl Dateinamen wie auch Unterverzeichnisse) direkt in ein Array übergeben, bietet PHP die Anweisung scandir().

// alle Dateien und Verzeichnisse aus Verzeichnis als Array
$verzeichnis = '.';     // aktuelles Verzeichnis
$verz_inhalt = scandir($verzeichnis);

echo "<pre>";
print_r($verz_inhalt);

Mit diesem Array kann nun weitergearbeitet werden.

Zusätzlich kann noch bei der PHP-Funktion die Sortierreihenfolge als zweiter Parameter mitgegeben werden. Bitte dabei beachten, dass erst alle Großbuchstaben sortiert ausgegeben werden und dann erst die Kleinbuchstaben:

// alle Dateien und Verzeichnisse aus Verzeichnis als Array
$verzeichnis = '.';     // aktuelles Verzeichnis
$verz_inhalt = scandir($verzeichnis, 1);

echo "<pre>";
print_r($verz_inhalt);

Wenn Sie einen Fehler finden, bitte mitteilen (egal ob Schreibfehler oder inhaltlicher Fehler).

Mit Maus fehlerhafte Stelle markieren und übernehmen mit folgendem Button:



(kann angegeben werden)

Nach Absenden kommt hier Feedback! Bitte nicht doppelt absenden. Danke.

Bitte unterstützen Sie dieses Projekt

Sie können dieses Projekt in verschiedenen Formen unterstützen - wir würden uns freuen und es würde uns für weitere Inhalte motivieren :).

unsere Videos bestellen

Unsere Videos und eBooks bestellen.

Spenden

Sie können uns eine Spende über PayPal zukommen lassen.

Weiterempfehlungen

Empfehlen Sie es weiter - wir freuen uns immer über Links und Facebook-Empfehlungen.

Bücher über Amazon

Bestellen Sie Bücher über folgende Links bei Amazon:

Fehler melden

Vielen Dank für Ihre Hilfe