if(is_dir($path."/".$item)){
//$func=__FUNCTION__;
//$sum+=$func($path."/".$item);
$sum+=dirSize($path."/".$item);
}
}
}
closedir($handle);
return $sum;
}
//$func=__FUNCTION__;
//$sum+=$func($path."/".$item);
$sum+=dirSize($path."/".$item);
}
}
}
closedir($handle);
return $sum;
}
2015-12-31
其实把函数这样修改一下,就不用把sum变量弄成global了,递归函数应该是这样用的:
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);
}
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);
}
2015-12-31
最赞回答 / _且行且思
end的参数是一个引用(reference),而你只能把一个变量的引用作为一个参数传给函数,而你直接把explode('.',$name)作为参数传给end函数,就有错误提示。你可以这样修改,先定义一个变量,然后把这个变量传给end函数,这样应该可以取消这个提示<...code...>
2015-12-24