Помогите подсчитать значения в цикле.

rob72

Новичок
идешь читать мануал и не лезешь в дальнейшем со своими глупыми советами
Можно уточнить, какую часть мануала? А то что-то в незнании основ пхп впервые слышу упрек.
 

Фанат

oncle terrible
Команда форума
А можно ли читать ответы на ТАКИЕ Вопросы в документации?
А вообще, лучше бы тебе, всё-таки, сделать через readdir
ты бы хоть понимать начал, что ты делаешь
 

zIP

Новичок
Автор оригинала: rob72
Можно уточнить, какую часть мануала? А то что-то в незнании основ пхп впервые слышу упрек.
Насколько я понимаю это:
PHP:
$count += show_size2($d,$format=true);
надо делать в цикле иначе выдаст то же что и сама функция

-~{}~ 20.04.06 15:06:

Автор оригинала: Фанат
А можно ли читать ответы на ТАКИЕ Вопросы в документации?
А вообще, лучше бы тебе, всё-таки, сделать через readdir
ты бы хоть понимать начал, что ты делаешь
Нет конечно нельзя прочитать такое про glob(). Но я имел в виду некий алгоритм, который реализовал бы это.

Через readdir сделаю, но я пока с этим не разобрался.
 

Фанат

oncle terrible
Команда форума
вот и разбирайся.
ничего слодного там нет, но зато ты будешь понимать базовые принципы работы с файлами и строками
 

rob72

Новичок
Да, действительно серьезный пробел насчет static... Странно, но не знал

Я тут бросил в соседнюю тему пример скрипта, работающего с директориями (в т ч вложенными), общий размер(и по директориям и полностью) также вычисляется мне кажется, это и здесь будет в тему

http://phpclub.ru/talk/showthread.php?s=&threadid=84285&rand=12
Список всех файлов директории
 

zIP

Новичок
Вот функция возвращающая размер файлов по маске. Возвращает размер в байтах, кб. и.т.д.
Нет необходимости приводить результат работы в нужный вид.

И она же считает количество файлов по маске.

Изначальная функция не моя. Но я ее несколько переделал.

PHP:
function show_size_mask($d,$mask,$format=true) {
         global $size, $num;
        if($format)
        {
        $size=show_size_mask($d,$mask,false);
        if($size<=1024) return $size.' bytes';
        else if($size<=1024*1024) return round($size/(1024),2).' Kb';
        else if($size<=1024*1024*1024) return round($size/(1024*1024),2).' Mb';
        else if($size<=1024*1024*1024*1024) return round($size/(1024*1024*1024),2).' Gb';
        else if($size<=1024*1024*1024*1024*1024) return round($size/(1024*1024*1024*1024),2).' Tb'; //:)))
        else return round($size/(1024*1024*1024*1024*1024),2).' Pb'; // ;-)
        }else
        {
          foreach (glob($d."/".$mask) as $file) {
//          echo $file." : ".filesize($file)."<br>";
          $f=filesize($file);
          $size+=$f;
          $num++;
              }
           if(is_file($d)) return filesize($d);
             $dh=opendir($d);
               while(($file=readdir($dh))!==false)
                {
                  if($file=='.' || $file=='..') continue;
               else
            show_size_mask($d.'/'.$file,$mask,false);
         }
        closedir($dh);
      return $size;
    }
}

//Пример использования
$size = 0;
$num = 0;
$mask = "*.jpg";
$count = show_size_mask($d,$mask,$format=true);
echo "Всего файлов ".strstr($mask,".")." : ".$num."<br>";
echo "Размер всех файлов : ".$count."<br><br>";
Результат работы
f:/server/info/1/test/car.gif : 10543
f:/server/info/1/test/test2/add.gif : 108
f:/server/info/1/test/test2/car2.gif : 10543
f:/server/info/1/test/test2/test3/add.gif : 108
f:/server/info/1/test/test2/test3/car3.gif : 10543
f:/server/info/1/test/test2/test3/test4/car4.gif : 10543
Всего файлов .gif : 6
Размер всех файлов : 41.39 Kb
 
Сверху