function dirsize( $d ) {
$count1 = 0;
$dh = opendir( $d );
while( ( $files = readdir( $dh ) ) !== false )
{
if ( $files != "." && $files != ".." )
{
$path = $d . "/" . $files;
if( is_dir( $path ) )
{ $count1 += dirsize( $path , $count1 ); }
elseif( is_file( $path ) )
{ $count1++; }
}
}
closedir($dh);
return $count1;
}
function show_size($f,$format=true)
{
if($format)
{
$size=show_size($f,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
{
if(is_file($f)) return filesize($f);
$size=0;
$dh=opendir($f);
while(($file=readdir($dh))!==false)
{
if($file=='.' || $file=='..') continue;
if(is_file($f.'/'.$file)) $size+=filesize($f.'/'.$file);
else $size+=show_size($f.'/'.$file,false);
}
closedir($dh);
return $size+filesize($f); // +filesize($f) for *nix directories
}
}
http://ru2.php.net/glob - вот тебе маскаА можно ли в эту функцию вставить фильтр. По маске
Вопрос тупой - я не могу понять почему если я делаю так как показано в примере у меня ничего не выводиться. Точнее в цикле foreach echo не работает вообще?Автор оригинала: BEZZ
http://ru2.php.net/glob - вот тебе маска
$filename = "test/inde.shtml";
foreach (glob("*.shtml") as $filename) {
echo "Размер";
echo "$filename size " . filesize($filename) . "\n";
}
а с чего ты взял, что цикл выполняется хоть раз?в цикле foreach echo не работает вообще?
1) Там изначально стояло просто "test" как директория.Автор оригинала: Фанат
что означает первая строчка этого кода?
а с чего ты взял, что цикл выполняется хоть раз?