|
|
|
|
|
для: Саша
(23.02.2006 в 11:23)
| | >chdir по моему лучшее решение, это позволяет избавится от
>проблемы со слешами и позволяет правильно работать не
>зависимо от платформы
Это интересно как-же?
И мне очень "понравились" имена переменных типа $c | |
|
|
|
|
|
|
|
для: Саша
(23.02.2006 в 11:23)
| | Насчёт лучшего не знаю, но это действительно позволяет избавиться от целого класса ошибок связанных с удвоением слеша. | |
|
|
|
|
|
|
|
для: cheops
(22.02.2006 в 23:14)
| | chdir по моему лучшее решение, это позволяет избавится от проблемы со слешами и позволяет правильно работать не зависимо от платформы | |
|
|
|
|
|
|
|
для: SoftTime
(21.02.2006 в 14:46)
| | Очень компактный скрипт, оригинально оформленный результат. При решении задачи можно было обойтись без глобальных массивах, но в данной конкретной задаче - это не смертельно, более того привело к уменьшению кода. Очень добротное решение. | |
|
|
|
|
|
|
| Ответ 005 на задачу N 8.
С условиями задачи можно ознакомится по ссылке.
<?php
function getdirsize ( $dir1 ) { # рекурсивная функция, которая возвращает размер папки
$size = 0;
global $c; # счетчик вложености папки
$c++; # если была вызвана функция, счетчик вложености увеличивется
chdir ( $dir1 );
$dir = opendir( "." ) or die ("No a dir $dir1 in " . getcwd());
while ( $file = readdir ( $dir ) ) { # читаем каталог
if ( $file == "." or $file == "..") continue; # пропускаем не нужные имена
# если считываемый елемент папка - идем глубже, иначе добавляем к обьему размер файла
$size += ( filetype ( $file ) == "dir" ) ? getdirsize ( $file ) : filesize ( $file );
}
if ( $c == 2 ) # если это подпапка заданой директории выводим имя и размер
echo "<tr><td align=\"right\">$dir1</td><td>$size</td></tr>";
$c--; # уменьшаем уровень вложености
chdir ( "../" );
return $size;
}
$c = 0;
$dir = "/";
echo "<table align=\"center\">";
$total = getdirsize ( $dir );
echo "<tr ><td align=\"right\"><strong> </strong></td> <td><strong>total <br>$total</strong></td></tr></table>";
?>
|
http://www.softtime.ru/info/task.php?id_article=78 | |
|
|
|
|