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

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Ответ 001 на задачу N 8
 
 автор: SoftTime   (20.02.2006 в 17:36)   письмо автору
 
 

Ответ 001 на задачу N 8.
С условиями задачи можно ознакомится по ссылке.


//size.php  from udaf
<?php
//функция для подсчета размера каталога
function dir_size($dir_name)
{
    
//получаем список файлов
    
$files_in_dir scandir($dir_name);
    
//обходим массив и для директорий запускаем рекурсивно свою функцию
    
foreach($files_in_dir as $file_in_dir)
    {
        
//фильтрация от текущей директории и родительской
        
if(($file_in_dir == ".") || ($file_in_dir == ".."))continue;
        
//если файл
        
if(is_file($dir_name."/".$file_in_dir)) $cur_dir_size += filesize($dir_name."/".$file_in_dir);
        
//если директория то запускаем свою функцию
        
if(is_dir($dir_name."/".$file_in_dir)) $cur_dir_size += dir_size($dir_name."/".$file_in_dir);
    }
    
//возвращаем значение
    
return $cur_dir_size;
}
//текущая директория
$dir ".";
//список файлов текущей директории в массиве
$files scandir($dir);
//цикл для обхода массива
//таблица с заголовком
echo("<table>\n<tr><th>DIR</th><th>SIZE(byte)</th></tr>\n");
foreach(
$files as $file)
{
    
//так как требуется печатать размеры только подкаталогов текущего каталога
    //то  родительский каталог
    
if($file == "..")continue;
    
//если директория то выводим ее размер
    
if(is_dir($file)) echo("<tr><td>".$file."</td><td>".dir_size($file)."</td></tr>\n");
    
//echo($file);
}
echo(
"</table>");
?>


http://www.softtime.ru/info/task.php?id_article=78

   
 
 автор: cheops   (22.02.2006 в 22:47)   письмо автору
 
   для: SoftTime   (20.02.2006 в 17:36)
 

Очень хорошо, неповерив, что работает - сравнил с Far - всё один в один. Прозрачный рекурсивный спуск и вообще очень хорошее решение. Однако имеется недостаток в виде функции scandir(), она доступна только начиная с PHP 5, а это значит пока не поддерживается всеми хостерами.

   
 
 автор: udaf   (24.02.2006 в 19:38)   письмо автору
 
   для: cheops   (22.02.2006 в 22:47)
 

никто не предявлял требований насчет версии пхп и совместимости с его разными версиями
но скрипт легко исправить

   
Rambler's Top100
вверх

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