Tom: Werte in Array speichern!

Beitrag lesen

Hello,

ich lese mit while ($datei = readdir($verzeichnis)) ein Verzeichnis aus und möchte die Werte von $datei in einem Array bespeichern damit ich nachher mit echo "$array[i++]"; darauf zu greifen kann.

In dieser Aufgabe stecken zwei gemeine Fehlermöglichkeiten drin:

1.  Die Eröffnung des Verzeichnisses erfolgt mit einem HANDLE,
    die gelieferten Verzeichniseinträge sind aber NAMEN.

Die Lösung findest Du selber!

2.  Die Abfrage ($datei = readdir($verzeichnishandle)) ist falsch, denn spätestens
    bei einer Datei mit dem Namen "0" würde sie abbrechen.

Richtig ist die Abfrage

while(false !== ($filename = readdir($verzeichnishandle)))
      {
        $_dircontent[] = $dirname.'/'.$filename;
      }

Außerdem kann der gelieferte Name immer noch ein Verzeichnis oder einen Link (o.ä.) liefern.
Das kannst Du abfangen, wenn Du mit is_file($dirname.'/'.$filename) abfragst.

Harzliche Grüße aus http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau