ok! вот наконец-то зделал рабочий скрипт!
PHP код:
<?
function aaa($j, $lvl){
$lvl ++;
$depth = str_repeat(" ", $lvl);
$dir = opendir($j);
while ($file = readdir($dir)){
$path = $j."/".$file;
if ($file != ".." && $file != "." && is_dir($path)){
echo $depth.$file."<BR>";
aaa($path, $lvl);
}
}
closedir($dir);
}
aaa(".", 0);
?>
Вот возник ещё вопрос, который я не могу разрешить.
Thanks to
Vlad Drakula за помощь.
Тепер я хочу для каждой директории показывать её размер,
но что-то не ладится, непойму в чём дело, помогите!
За размер директорий отвечает функция d_size, она первая.
Отдельно она прекрасно работает, но слить всё вместе неполучается.
PHP код:
<?
function d_size($k){
$v = opendir($k);
$size = 0;
while ($fl = readdir($v)){
if (is_file($k."/".$fl)){
$size += filesize($k."/".$fl);
}
}
closedir($v);
return $size;
}
function aaa(&$dirlist, $j, $lvl){
$lvl ++;
$depth = str_repeat(" ", $lvl);
$dir = opendir($j);
while ($file = readdir($dir)){
$path = $j."/".$file;
if ($file != ".." && $file != "." && is_dir($path)){
$dirlist[] = $depth.$file;
aaa($dirlist, $path, $lvl);
}
}
closedir($dir);
}
$dirlist = array();
aaa($dirlist, ".", 0);
echo "<table border=0 cellspacing=1 cellpadding=2 bgColor=#ffffff>";
for ($i = 0; $i < count($dirlist); $i ++){
if (is_int($i/2)){
$c_status = "#dddddd";
} else {
$c_status = "#eeeeee";
}
echo "<tr><td bgColor=".$c_status.">".$dirlist[$i]."</td>
<td bgColor=".$c_status.">".BcDIV(d_size($dirlist[$i]), 1024*1024, 2)."</td></tr>";
}
echo "</table>";
?>