<?php 
function Yget_dir_size($dir, $debug=false){ 
  if (!is_dir($dir)) return false; 
  if (!preg_match("`/$`", $dir)) $dir .= '/'; 
  $get_size = 0; 
  $d = dir($dir); 
  while (false !== ($entry = $d->read())) { 
    if (substr($entry, 0, 1) == '.') continue; 
    
    if (is_file($dir . $entry)) { 
      $get_size += filesize($dir . $entry); 
      if ($debug == true) echo $dir . $entry . ' ' . filesize($dir . $entry) . "<br>\n"; 
    } 
    else if (is_dir($dir . $entry)){ 
      $get_size += Yget_dir_size($dir . $entry, $debug); 
    } 
    else{ 
      continue; 
    } 
  } 
  $d->close(); 
  return $get_size; 
} 
$dir = '용량체크하고픈 디렉토리경로(상대경로 or 절대경로)'; 
echo Yget_dir_size($dir, true);//개별파일출력을 원할 경우 
echo Yget_dir_size($dir);//개별파일출력을 원하지 않을경우 
?> 
몇가지 첨언을 하자면 
Yget_dir_size 이함수는 재귀호출 함수입니다. 
해당디렉토리에 다른 디렉토리를 발견하면 자기 자신을 다시 호출합니다. 
이함수는 해당 디렉토리를 웹서버가 읽을 수 있을 경우에만 제대로 작동합니다. 
--------------------------------------------------------------------------------------------------
지나가다가 슬쩍... 
function get_dirsizea($file_dir) { 
$size = 0; 
$d = dir($file_dir); 
while ($entry = $d->read()) { 
if ($entry != "." && $entry != "..") $size += filesize("$file_dir/$entry"); 
} 
$d->close(); 
return $size; 
} 
출처 : http://www.welog.net/gbbs/bbs/board.php?bo_table=php&wr_id=18
 
		 
	


















