Forum und email

readdir

(PHP 4, PHP 5)

readdir — Liest einen Eintrag aus einem Verzeichnis-Handle

Beschreibung

string readdir ( resource $dir_handle )

Gibt den Dateinamen des nächsten Files des Verzeichnisses zurück. Die Dateinamen werden in der Reihenfolge zurück gegeben, in der sie innerhalb des Filesystems angelegt wurden.

Parameter Liste

dir_handle

Das Verzeichnis-Handle resource, das zuvor mit opendir() geöffnet wurde.

Rückgabewerte

Gibt bei Erfolg den Dateinamen zurück, im Fehlerfall FALSE.

Warnung

Diese Funktion kann sowohl das Boolsche FALSE zurückliefern, als auch einen nicht-Boolschen Wert, wie zum Beispiel0 oder "". der von einem einfachen if-Statement als FALSE ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die Boolsche Typen. Benutzen Sie deshalb den === Operator um den Rückgabewert dieser Funktion zu überprüfen.

Beispiele

Example#1 Alle Dateien eines Verzeichnisses auflisten

Bitte beachten Sie die Art und Weise, in der die Rückgabewerte von readdir() in untenstehenden Beispielen geprüft werden. Wir testen explizit, ob der Rückgabewert identisch (also inhaltlich und typgleich -- siehe Kapitel Vergleichs-Operatoren für weitere Informationen) zu FALSE ist, andernfalls würde jeder Verzeichnis-Eintrag, dessen Name als FALSE ausgewertet wird, das Durchlaufen der Schleife beenden (z.B. ein Verzeichnis namens "0").

<?php
// Beachten Sie, dass !== vor 4.0.0-RC2 nicht verfuegbar war

if ($handle opendir('/path/to/files')) {
    echo 
"Directory handle: $handle\n";
    echo 
"Files:\n";

    
/* Das ist der korrekte Weg, ein Verzeichnis zu durchlaufen. */
    
while (false !== ($file readdir($handle))) {
        echo 
"$file\n";
    }

    
/* Dies ist der FALSCHE Weg, ein Verzeichnis zu durchlaufen. */
    
while ($file readdir($handle)) {
        echo 
"$file\n";
    }

    
closedir($handle);
}
?>

Example#2 Listet alle Dateien des aktuellen Verzeichnisses auf und blendet dabei . und .. aus.

<?php
if ($handle opendir('.')) {
    while (
false !== ($file readdir($handle))) {
        if (
$file != "." && $file != "..") {
            echo 
"$file\n";
        }
    }
    
closedir($handle);
}
?>

Siehe auch