PHP遍历目录并返回统计目录大小

 
<?php 
$dirname = "test1"; 
//mkdir($dirname); 

//遍历一层目录 
function listdir($dirname) { 
$ds = opendir($dirname); 
while($file = readdir($ds)) { 
$path = $dirname.'/'.$file; 
if(is_dir($file)) { 
echo "DIR:".$file."<br>"; 
if($file != "." && $file != "..") { 
listdir($file); 
} 
} 
else { 
echo "FILE:".$file . "<br>"; 
} 
} 
} 

function totdir($dirname) { //对listdir稍加修改 
static $tot = 0; 
$ds = opendir($dirname); 
while($file = readdir($ds)) { 
$path = $dirname.'/'.$file; 
if(is_dir($file)) { 
//echo "DIR:".$file."<br>"; 
if($file != "." && $file != "..") { 
$tot += totdir($file); 
} 
} 
else { 
//echo "FILE:".$file . "<br>"; 
$tot += filesize($path); 
} 
} 

//返回总计 
return $tot; 
} 

listdir($dirname); 

echo totdir($dirname)." bytes"; 

?>