Vielleicht hilft es Dir ja, wenn ich es nochmal mit anderen Worten beschreibe.
Du willst ein Verzeichnis auslesn. OK.
Dann wollen wir mal das Verzeichnis öffnen:
$handle=opendir('Verzeichnis');
Im $handle steht jetzt ein Zeiger auf das Verzeichnis.
Damit kannst Du zwar nicht viel anfangen, aber die PHP Verzeichnisfunktionen benötigen diesen Zeiger, um mit dem Verzeichnis was anzufangen.
Du wolltest es auslesen - dazu gibt es die praktische Funktion readdir()
Diese Funktion liefert Dir den jeweils nächsten Eintrag in diesem Verzeichnis.
Ein Aufruf
$file=readdir($handle);
würde Dir also den ersten Eintrag in diesem Verzeichnis liefern. Das praktische ist, das diese Funktion sich diesen Eintrag merkt und Dir beim nächsten Aufruf den nächsten Eintrag liefert.
Jetzt weisst Du ja nicht, wieviele Einträge in dem Verzeichnis sind. Sind alle Einträge ausgelesen, liefert Dir diese Funktion ein FALSCH (also 'false').
Es ist also sinnvoll, dies in einer Schleife zu tun, bis eben die Rückgabe false ist.
Dazu eignet sich die while-Schleife:
while(Ergebnis ungleich false) {
...
}
Jetzt brauchen wir nur noch den Ausdruck für while:
false !== ($file = readdir ($handle))
Das heist, die Funktion readdir wird aufgerufen und das Ergebnis in $file gespeichert. Liefert die Funktion am Ende false, steht da:
false !== false
und das ist falsch, die while-Schleife wird verlassen.
Wunderbar, Du bekommst also alle Einträge des Verzeichnisses, hier nochmal im Zusammenhang:
PHP-Code:
while( false !== ($file = readdir ($handle)) ) {
echo "Eintrag: $file <br>";
}
So weit, so gut. Jetzt wollen wir die Einträge . und .. nicht sehen, also:
PHP-Code:
while( false !== ($file = readdir ($handle)) ) {
if ($file != '.' && $file != '..') {
echo "Eintrag: $file <br>";
}
}
Du kannst das noch ausweiten, z.B.
PHP-Code:
while( false !== ($file = readdir ($handle)) ) {
if ($file != '.' && $file != '..') {
if (is_dir($file)) {
echo "Verzeichnis: $file <br>";
} else {
echo "File: $file <br>";
}
}
}
In diesem Sinne sollte es Dir möglich sein, die für Dich wichtigen Informationen anzuzeigen oder weiter zu verarbeiten.
Ich hoffe, das das jetzt noch verständlicher ist
