Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
文件夹大小与PHP?_Php_Directory - Fatal编程技术网

文件夹大小与PHP?

文件夹大小与PHP?,php,directory,Php,Directory,在查找父文件夹的大小时,我遇到了一个问题: 这是我的示例代码: function foldersize($dir){ $count_size = 0; $count = 0; $dir_array = scandir($dir); foreach($dir_array as $key=>$filename){ if($filename!=".." && $filename!="."){ if(is_dir($dir."/".$filename)){

在查找父文件夹的大小时,我遇到了一个问题:

这是我的示例代码:

function foldersize($dir){
 $count_size = 0;
 $count = 0;
 $dir_array = scandir($dir);
 foreach($dir_array as $key=>$filename){
  if($filename!=".." && $filename!="."){
   if(is_dir($dir."/".$filename)){
    $new_foldersize = foldersize($dir."/".$filename);
    $count_size = $count_size + $new_foldersize[0];
    $count = $count + $new_foldersize[1];
   }else if(is_file($dir."/".$filename)){
    $count_size = $count_size + filesize($dir."/".$filename);
    $count++;
   }
  }

 }

 return $count_size;
}
function foldersize($dir){
     $count_size = 0;
     $count = 0;
     $dir_array = scandir($dir);
     foreach($dir_array as $key=>$filename){
      if($filename!=".." && $filename!="."){
       if(is_dir($dir."/".$filename)){
        $new_foldersize = foldersize($dir."/".$filename);
        $count_size = $count_size + $new_foldersize;
       }else if(is_file($dir."/".$filename)){
        $count_size = $count_size + filesize($dir."/".$filename);
        $count++;
       }
      }

     }

     return $count_size;
    }
示例

如果我有如下结构的文件夹:

 mm[30MB]->rr[40MB]->ee[300MB]->ss[309MB]
如果我使用上述代码查找
mm
文件夹的大小,则显示的大小为
0


有人提出一些想法吗答案是:

function foldersize($dir){
 $count_size = 0;
 $count = 0;
 $dir_array = scandir($dir);
 foreach($dir_array as $key=>$filename){
  if($filename!=".." && $filename!="."){
   if(is_dir($dir."/".$filename)){
    $new_foldersize = foldersize($dir."/".$filename);
    $count_size = $count_size + $new_foldersize[0];
    $count = $count + $new_foldersize[1];
   }else if(is_file($dir."/".$filename)){
    $count_size = $count_size + filesize($dir."/".$filename);
    $count++;
   }
  }

 }

 return $count_size;
}
function foldersize($dir){
     $count_size = 0;
     $count = 0;
     $dir_array = scandir($dir);
     foreach($dir_array as $key=>$filename){
      if($filename!=".." && $filename!="."){
       if(is_dir($dir."/".$filename)){
        $new_foldersize = foldersize($dir."/".$filename);
        $count_size = $count_size + $new_foldersize;
       }else if(is_file($dir."/".$filename)){
        $count_size = $count_size + filesize($dir."/".$filename);
        $count++;
       }
      }

     }

     return $count_size;
    }