Ordnernamen in Array schreiben

  • Hallo Gemeinde,

    ich versuche mit diesem Script

    PHP
    1. // Füllen eines Arrays mit allen Ordnernamen eines Verzeichnisses
    2. $handle = opendir('.');
    3. while ($datei = readdir($handle)) {
    4. if($datei != "." && $datei != ".." && is_dir($datei)) {
    5. $dateien[] = $datei;
    6. }
    7. }
    8. closedir($handle);
    9. print_r($dateien);



    alle Unterordnernamen eines vorgegebenen Ordners in ein Array zu schreiben. Das funktioniert auch wunderbar, solange ich den Root-Ordner ('.') an das Script weitergebe. Alle Ordnernamen werden eingefügt, und vorhandene Dateien (z.B. index.php) werden ausgespart.

    Versuche ich dagegen einen Unterordner mitzugeben, also $handle = opendir('./unterordner') passiert gar nix, obwohl dieser weitere Ordner enthält und auch ein paar Dateien.

    Ein Test hat ergeben, dass Dateien auch nicht erkannt werden. Schreibe ich also in Zeile 3 statt is_dir($datei) is_file($datei) findet er auch nichts. Eine Ausgabe erreiche ich nur wenn ich !is_file($datei) schreibe. Dann speichert er jedoch sowohl die Ordnernamen, als auch die Dateinamen im Array ab. Da ich aber nur die Ordnernamen brauche, ist das auch keine Lösung.

    Fazit: Im Root-Ordner erkennt das Script Ordner und Dateien korrekt, während es in den Unterordnern nichts mehr klassifizieren kann - weder Ordner, noch Dateien werden als solche erkannt.

    Aufgerufen wird das Script aus der Index.php im Root-Ordner. Vermutlich hängt das seltsame Verhalten damit zusammen. caipi

    Könntet Ihr mir da auf die Sprünge helfen?

    Wolfgang



  • Das Problem ist, du brauchst dafür schon eine rekursive Funktion, und dass scheitert spätestens beim ersten rekursiven Aufruf der Funktion daran, da is_Dir( $var ) nun kein absoluten Pfad mehr hat und php den Ordner schlichtweg an falscher Stelle sucht, und daher immer false zurückgibt.

    Zwei Dinge sind Unbestreitbar:

    • In einem Land, in dem Amerika Krieg führt, herrscht nachher Demokratie.

    • Die Erde ist eine Scheibe!

    Aktuelle Abendlektüre: Stephen King, Peter Strauch: Das schwarze Haus (Black House, 2001)
    Aktuelle Bewertung: Abgesehen davon, dass der Roman mal wieder demonstriert, dass der Author geistesgestört ist, sehr träge; wenig Spannung; schlechter Erzählstil. King halt^^!