function dirSize($path){
$sum=0;
global $sum;
$handle=opendir($path);
while( ($item = readdir ( $handle )) !== false ){
//.和..这两种特殊文件名去除
if($item!='.' && $item!='..'){
if(is_file($path.'/'.$item)){
$sum+=filesize($path.'/'.$item);
}
if(is_dir($path.'/'.$item)){
$func=_FUNCTION_;
$func($path.'/'.$item);//递归,函数自己调用自己
}
}
}
closedir($handle);
return $sum;
}
$path='testfile';
echo dirSize($path);
如果testfile中只有文件,没有文件夹则输出正确;
如果testfile中还存在文件夹则提示:
Fatal error: Call to undefined function _FUNCTION_() in C:\wamp\www\file\dir.func.php on line 34
语法错误,是__FUNCTION__,左右都是两个下划线。没有文件夹的时候,程序走不到if(is_dir)里边,所以你没报错