dey: is_dir (!is_dir) funktioniert nicht in 2. Ebene

Beitrag lesen

Hallo,

ich versuche mehrere Verzeichnisse mit Unterverzeichnissen in Baumstruktur darzustellen.
Ich durchlaufe dabei den Aufruf opendir, readdir und is_dir so oft, wie meine Verzeichnisstruktur tief ist.
Eine Odrnungsgemässe Aufteilung zwischen Verzeichnissen und Dateien erhalte ich immer nur in dem Verzeichnis, in dem sich auch meine index.php befindet.
Warum?

  
$level_act=1;  
$dir_array = array (array('.'));  
$dir_act = "";  
//reset($dir);  
$file_array = array();  
while ( $level_act < 4){  
  
$dir_act = $dir_act.$dir_array[$level_act-1][0]."/";  
echo $dir_act."<br>";  
$dir[$level_act]=opendir ($dir_act);  
while (false !== ($dir_event = readdir ($dir[$level_act]))) {     //(false !== ($file = readdir($handle)  
    if (is_dir($dir_event )&& ($dir_event != ".") && ($dir_event != "..")){  
         if (!isset($dir_array[$level_act]))  {$dir_array[$level_act]=array($level_act=>$dir_event);}  
         else  {$dir_array[$level_act]= array_merge ($dir_array[$level_act],$dir_event);}  
    }  
    elseif (!is_dir($dir_event)){  
         if (!isset($file_array[$level_act]))  {$file_array[$level_act]=array($level_act=>$dir_event);}  
         else  {$file_array[$level_act]= array_merge ($file_array[$level_act],$dir_event);}  
    }  
}  
$level_act=$level_act+1 ;  
}  
echo "<pre>";print_r ($dir_array);echo"</pre>";  
echo "<pre>";print_r ($file_array);echo"</pre>";  

Ausgabe:
Array
(
    [0] => Array
        (
            [0] => .
        )

[1] => Array
        (
            [0] => 1-ho-test
            [1] => easypig
            [2] => ho-test-org
            [3] => photoit
            [4] => xml
        )

)

Array
(
    [1] => Array
        (
            [0] => 2003-005e.pdf
            [1] => edit-multi-array.php
            [2] => file-upload.php
            [3] => gaestebuch.php
            [4] => glob-test.php
            [5] => index.php
            [6] => inhalt.php
            [7] => inhalt.xml
            [8] => lih2.html
            [9] => parse-xml.php
            [10] => pdf-in-iframe.php
            [11] => phpinfo.php
        )

[2] => Array
        (
            [0] => galerie
            [1] => galerie.php
            [2] => grafik.php
            [3] => index.php
        )

[3] => Array
        (
            [0] => galerie
            [1] => galerie.php
            [2] => grafik.php
            [3] => index.php
        )

)

Eigentlich müsste das erste array am Ende so
    [1] => Array
        (
            [0] => 1-ho-test
            [1] => easypig
            [2] => ho-test-org
            [3] => photoit
            [4] => xml
        )
    [2] => Array
        (
            [0] => galerie
        )
)
aussehen.
Ich habe schon x Varianten mit unterschiedlichen root und auch sonstiges probiert. Ich begreife es nicht?!

bydey

--
-- noch immer ein erfolgloser <DIV> Jünger --