// 폴더 전체용량
function dirsize($dir){
static $size, $cnt;
$fp = opendir($dir);
while(false !== ($entry = readdir($fp))){
if(($entry != ".") && ($entry != "..")){
if(is_dir($dir.'/'.$entry)){
clearstatcache();
dirsize($dir.'/'.$entry);
} else if(is_file($dir.'/'.$entry)){
$size += filesize($dir.'/'.$entry);
clearstatcache();
$cnt++;
}
}
}
closedir($fp);
$stat = array(
'size' => $size,
'cnt' => $cnt
);
return $stat;
} // end func
function attach($size) {
if($size < 1024){
return number_format($size*1.024).'b';
} else if(($size > 1024) && ($size < 1024000)){
return number_format($size*0.001024).'Kb';
} else if($size > 1024000){
return number_format($size*0.000001024,2).'Mb';
}
return 0;
}
// 사용법: $arr = dirsize(폴더 경로);
// $arr['cnt'] <- 총 파일 수, $arr['size'] <- 총 용량 수
$stat = dirsize('./includes');
echo "총 파일수: ".$stat['cnt']." 총 파일 용량: ".attach($stat['size']);