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 = "";
$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]))) {
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 --