|
|
|
| Вот функция, которая выводит дерево каталогов (она целиком взята из одного учебника по PHP):
<?
function PrintTree($level=1)
{
$d=@opendir(".");
if(!$d) return;
while(($e=readdir($d))!==false) {
if($e=='.'||$e=='..') continue;
if(!@is_dir($e)) continue;
for($i=0; $i<$level; $i++) echo " ";
echo "$e\n";
if(!chdir($e)) continue;
PrintTree($level+1);
chdir("..");
flush();
}
closedir($d);
}
echo "<pre>";
echo "/\n";
chdir("/");
PrintTree();
echo "</pre>";
?>
|
Как сделать, чтобы она в конце выводила количество файлов, количество каталогов и размер файлов ?
У меня получается сделать только так, чтоб она после каждого обхода выводила нужные данные, а надо - только в конце работы скрипта.
Буду очень благодарен, если кто-нибудь поможет изменить ЭТУ функцию или предложит другую! | |
|
|
|
|
|
|
|
для: Я
(27.10.2006 в 17:24)
| | Забыл написать!
Вот как я изменил функцию:
function PrintTree($level=1)
{
static $as1=0;
static $as2=0;
static $as3=0;
$d=@opendir(".");
if(!$d) return;
while(($e=readdir($d))!==false)
{
if($e=='.'||$e=='..') continue;
for($i=0; $i<$level; $i++) echo "     ";
echo $e."<br>";
if(is_dir($e)) $as1=$as1+1;
else
{
$as2=$as2+1;
$as3=$as3+filesize($e);
}
if(!@chdir($e)) continue;
PrintTree($level+1);
chdir("..");
flush();
}
closedir($d);
echo"<br><font color=red size=5>Количество папок: $as1</font>";
echo"<br><font color=blue size=5>Количество файлов: $as2</font>";
echo"<br><font color=green size=5>Общий размер файлов: $as3</font>";
}
|
| |
|
|
|
|
|
|
|
для: Я
(27.10.2006 в 17:29)
| | Попробуйте так:
if ($level == 1)
{
echo"<br><font color=red size=5>Количество папок: $as1</font>";
echo"<br><font color=blue size=5>Количество файлов: $as2</font>";
echo"<br><font color=green size=5>Общий размер файлов: $as3</font>";
}
|
| |
|
|
|