Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Функция с возвратом размера файлов

Сообщения:  [1-3] 

 
 автор: kasmanaft   (27.10.2006 в 18:56)   письмо автору
 
   для: Я   (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>";
}

   
 
 автор: Я   (27.10.2006 в 17:29)   письмо автору
 
   для: Я   (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 "&nbsp &nbsp &nbsp";

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:24)   письмо автору
 
 

Вот функция, которая выводит дерево каталогов (она целиком взята из одного учебника по 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>";
?>

Как сделать, чтобы она в конце выводила количество файлов, количество каталогов и размер файлов ?
У меня получается сделать только так, чтоб она после каждого обхода выводила нужные данные, а надо - только в конце работы скрипта.

Буду очень благодарен, если кто-нибудь поможет изменить ЭТУ функцию или предложит другую!

   

Сообщения:  [1-3] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования