:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte
Unternehmen im
Anbieterverzeichnis von SELFPHP
:: SELFPHP Forum ::
Fragen rund um die Themen PHP? In über
120.000 Beiträgen finden Sie sicher die passende
Antwort!
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
:: Qozido ::
Die Bilderverwaltung mit Logbuch für
Taucher und Schnorchler.
|
|
Auslesen von Verzeichnissen |
Zu den wichtigsten Aufgaben der Dateifunktionen gehört das Auslesen der Bestandteile eines Verzeichnisses. Für diese Aufgabe stehen Ihnen folgende Funktionen zur Verfügung:
Funktion | Beispiel | Bedeutung | closedir (dir_handle) | closedir ($handle); | Löscht einen Verweis (Handle) auf ein Verzeichnis. | dir (directory) | dir ("/etc"); | Liefert ein Objekt, das für ein Verzeichnis steht. | opendir (path) | opendir ($path); | Erzeugt einen Verweis (Handle) auf ein Verzeichnis. | readdir (dir_handle) | readdir ($handle); | Ermittelt den jeweils nächsten Datei- oder Verzeichnisnamen aus einem Verzeichnis. | rewinddir (dir_handle) | rewinddir ($handle); | Positioniert den readdir-Zeiger wieder auf dem ersten Eintrag eines Verzeichnisses. | scandir (directory [, sorting_order]) | scandir ($directory); | Listet sämtliche Dateien und Verzeichnisse eines angegebenen Pfads auf. Die Sortierreihenfolge ist alphabetisch aufsteigend. Sollte der optionale Parameter sorting_order verwendet werden, wird die Sortierreihenfolge alphabetisch absteigend sein. |
Im Grunde verbergen sich hinter den oben vorgestellten Funktionen zwei Konzepte für den Zugriff auf Verzeichnisse und das Auslesen von Dateien:
- Zugriff über einen Verweis (Handle, Referenz).
- Zugriff über ein Objekt, das Sie mit der Funktion dir() erhalten. Auf dieses Objekt lassen sich dann Eigenschaften und Methoden anwenden.
Zugriff via Verweise
Einen Verweis erhalten Sie mithilfe der Funktion opendir(). Das folgende Beispiel zeigt, wie Sie Dateien aus einem Verzeichnis auslesen:
<?php
$handle=opendir ('.');
echo "Verzeichnis-Handle: $handle<br>";
echo "Dateien:<br>";
while (false !== ($file = readdir ($handle))) {
echo "$file<br>";
}
closedir($handle);
?>
Ausgabe
Verzeichnis-Handle: Resource id #2
Dateien:
.
..
konstanten.php
Beachten sie, dass readdir() auch die Einträge "." und ".." zurückgibt. Wollen Sie das nicht, müssen Sie sie ausschließen:
<?php
$handle=opendir ('.');
echo "Verzeichnis-Handle: $handle<br>";
echo "Dateien:<br>";
while ($file = readdir ($handle)) {
if ($file != "." && $file != "..") {
echo "$file<br>";
}
}
closedir($handle);
?>
Ausgabe
Verzeichnis-Handle: Resource id #2
Dateien:
konstanten.php
Zugriff via Objekt
Kommen wir nun zum zweiten Konzept, nämlich dem Zugriff mithilfe des dir-Objekts. Es handelt sich hierbei um ein Pseudo-Objekt, d. h. eine Mischung aus Funktion und objektorientierter Lösung. Dem Objekt stehen diverse Eigenschaften und Methoden zur Verfügung, welche in folgender Tabelle aufgeführt sind:
Funktion | Bedeutung | handle | Diese Eigenschaft liefert einen Verweis, welcher sich mit den weiter oben vorgestellten Funktionen nutzen lässt. | path | Diese Eigenschaft liefert den Pfad des dir-Objekts. | close() | Diese Methode gibt das Objekt wieder frei. | read() | Diese Methode liefert bei jedem Aufruf den jeweils nächsten Verzeichniseintrag. | rewind() | Diese Methode setzt den internen Zeiger für die read-Operationen wieder auf den ersten Eintrag. |
Das Auslesen eines Verzeichnisses entspricht den bereits vorgestellten Beispielen. Lediglich die Syntax stellt sich etwas anders dar:
<?php
$verzeichnis = dir(".");
echo "Verzeichnis-Handle: $verzeichnis<br>";
echo "Dateien:<br>";
while ($file = $verzeichnis->read()) {
echo "$file<br>";
}
$verzeichnis->close();
?>
Ausgabe
Verzeichnis-Handle: Object id #1
Dateien:
.
..
konstanten.php
Hinweis: Dieses Pseudo-Objekt als spezielle Syntax wird vor allem beim objektorientierten Anwendungen eingesetzt.
|
|
|
|
|
|