Verzeichnis auslesen mit scandir

Mit der PHP-Funktion scandir kann man ein Verzeichnis auslesen und sich die enthaltenen Dateien und Ordner als Array zurückgeben lassen.

Die Verwendung von scandir

Die PHP-Funktion scandir erwartet als ersten Parameter den Pfad zu einem Verzeichnis und gibt als Rückgabewert alle enthaltenen Dateien und Verzeichnisse aus.

1
$dateien = scandir('/verzeichnis/');

Mit einem Doppelklick kann der gesamte Code markiert werden.

Ausgehend davon, dass sich im Verzeichnis die Dateien 1.txt, 2.txt und 3.txt befinden, sieht der Rückgabewert von scandir so aus:

1
2
3
4
5
6
7
8
Array
(
[0] => .
[1] => ..
[2] => 1.txt
[3] => 2.txt
[4] => 3.txt
)

Mit einem Doppelklick kann der gesamte Code markiert werden.

Reihenfolge des Rückgabewertes umkehren

Um die Reihenfolge des Rückgabewertes umzukehren, könnte man auf die Funktion array_reverse zurückgreifen. Einfacher geht es, indem man als zweiten Parameter eine 1 an den scandir-Befehl übergibt.

1
$dateien=scandir('/verzeichnis/',1);

Mit einem Doppelklick kann der gesamte Code markiert werden.

Die Reihenfolge des Rückgabewertes ist nun umgekehrt.

1
2
3
4
5
6
7
8
Array
(
[0] => 3.txt
[1] => 2.txt
[2] => 1.txt
[3] => ..
[4] => .
)

Mit einem Doppelklick kann der gesamte Code markiert werden.

Nur Dateien und Ordner im Rückgabewert ausgeben

Der Rückgabewert enthält neben den Dateinamen noch zwei Einträge für das aktuelle und das übergeordnete Verzeichnis. Diese Einträge stören beispielsweise bei einer späteren Verwendung des Rückgabewertes in einer Schleife. Mit folgendem Code lassen sich die beiden Einträge entfernen.

1
$dateien=array_diff(scandir('/verzeichnis/'),['.','..']);

Mit einem Doppelklick kann der gesamte Code markiert werden.

Über den Autor

Mein Name ist . Mit dieser Website möchte ich meine Erfahrungen an andere Webentwickler weitergeben und schnelle Lösungen für die alltäglichen Probleme anbieten.