Считать размер загруза под мотор

Print RSS
177

Author
Чатланин
0
Как считать вес загруза на стандартным загрузе?
Хочу узнать весь download и весь разела на загрузе.
Типо так: общий загруз содержит 5мб, и категория содержит 1 мб
Changed: Мансур (06.07.2010 / 22:46)
A

Оранжевые штаны
0
Бородатый Одмин (20.02.08 / 21:28)
РНР-кодер [Off]
Ответить / Цитировать / Спам
специально для плеерка!!!
Код подсчёта общего веса файлов в директории с вложенными папками:
function size_dir($dir) {
$full_size=0;
$opdir=opendir($dir);
while ($a = readdir($opdir))
{ if ($a != "." && $a != ".." && !is_dir($dir .'/'.$a))
{$full_size=$full_size+filesize($dir .'/'.$a);}
elseif ($a != "." && $a != ".." && is_dir($dir .'/'.$a)) {$full_size=$full_size+size_dir($dir .'/'.$a);}
}
closedir ($opdir);
return $full_size;}
}
потом обращайся к этой функции как
$size=size_dir("директория");
A

Оранжевые штаны
0
3, бывает smile
Author
Чатланин
0
2. Azzido, а куда вставить етот?
function size_dir($dir) { 
$full_size=0; 
$opdir=opendir($dir); 
while ($a = readdir($opdir)) 
{ if ($a != "." && $a != ".." && !is_dir($dir .'/'.$a))  
{$full_size=$full_size+filesize($dir .'/'.$a);} 
elseif ($a != "." && $a != ".." && is_dir($dir .'/'.$a)) {$full_size=$full_size+size_dir($dir .'/'.$a);} 
} 
closedir ($opdir); 
return $full_size;} 
}

На индекс.пхп ? так надо?
$size=size_dir("download")
$size=size_dir("download/001")
A

Оранжевые штаны
0
это можешь вставить допустим в functions.php возможно там даже имеется такая функция уже...

ツ ツ ツ
0
Только кешировать не забывай, ато при каждом заходи на страницу так считать, это убийство сервера
Author
Чатланин
0
Вот функции мотора. Здесь кеширование нето. А на главным счетчике есть
<?php
//--------------- Функция подсчета файлов в загрузках -------------------//
function  count_dir($dir) { 
global $sitetime;

$count=0;
$newcount=0;

$path = opendir($dir);
while ($file = readdir($path)) {
if (( $file != ".")&&($file != "..")&&($file != ".htaccess")&&($file != "index.php")&&($file != "name.dat")&& !ereg (".txt$", "$file")&& !ereg (".JPG$", "$file")&& !ereg (".GIF$", "$file")) {
   
$count ++;

$filetime=filemtime("$dir/$file")+(3600*24*5);
if($filetime>$sitetime){   
$newcount ++;
}
}}

if($newcount>0){   
$input=(int)$count.'/<font color="#FF0000">+</font>'.(int)$newcount; 
}else{
$input=(int)$count;
}

closedir ($path); 
return  $input;
}
?>
Author
Чатланин
0
Вот нашол инета. Какраз мне такой нужен. Считать сколько файл и размер. Можно переделать под мотор? И как сделать кеширование?
<?php
//Определение числа файлов и их размер в папке произвольной вложенности
//рекурсивная функция, которая вызывает сама себя
function count_files($directory)
{
//нужна внешняя переменная чтобы учитывать суммарное кол-во файлов
GLOBAL $i,$size;
//открываем директорию
$dir=opendir($directory);
//читаем директорию в цикле
while (false!==($file=readdir($dir)))
{
//если это файл, то
if (is_file($directory.'/'.$file))
{
//увеличиваем счетчик
$i++;
//увеличиваем размер
$size+=filesize($directory.'/'.$file);
/*если необходимо, то можно удалить все файлы для примера вот так:
unlink($directory.'/'.$file); */
}
//если же наткнулись на директорию
elseif (is_dir($directory.'/'.$file) && $file!='.' && $file!='..')
{
//снова вызываем функцию уже для этой директории
count_files($directory.'/'.$file);
}
}
//закрываем директорию
closedir($dir);
}
$i=0;
$size=0;
//посчитаем файлы в текущей директории
count_files('.');
echo 'файлов :'.$i;
echo ' размером :'.$size;
?>
Changed: Мансур (06.07.2010 / 14:15)
Author
Чатланин
0
вот исправиль... проверел супер. так тоже убийство сервера???

<?php
function  count_d($dir) {  
global $sitetime; 

$count=0; 
$newcount=0; 
$size=0;
$path = opendir($dir); 
while ($file = readdir($path)) { 
if (( $file != ".")&&($file != "..")&&($file != ".htaccess")&&($file != "index.php")&&($file != "name.dat")&& !ereg (".txt$", "$file")&& !ereg (".JPG$", "$file")&& !ereg (".GIF$", "$file")) { 
    
$count ++; 
$size+=filesize("$dir/$file");
$filetime=filemtime("$dir/$file")+(3600*24*5); 

if($filetime>$sitetime){   
$newcount ++; 
} 
}} 

if($newcount>0){  
$input=(int)$count.'/<font color="#FF0000">+</font>'.(int)$newcount.' / '.formatsize($size);  
}else{ 
$input=(int)$count.' / '.formatsize($size); 
} 

closedir ($path);  
return  $input; 
}
?>
Author
Чатланин
0
выводить так: video(222/+70/12.38 Mb)
Stickers / Tags / Rules / Top topics / Top Posts / Search