2017-02-04 127 views
1

有没有一种有效的方法来计算文件夹里面有更多文件和子文件夹的文件?如何使用PHP计算文件夹和子文件夹内的文件

我试过这样的事情,仍然没有给我正确的数字。 Windows会识别Images文件夹中有159个文件。当我只得到144

<?php 
$img = count(glob("./assets/images/*.*")); 
$about = count(glob("./assets/images/aboutus/*.*")); 
$blog1 = count(glob("./assets/images/blog/*.*")); 
$mason = count(glob("./assets/images/blog/masonary/*.*")); 
$tl = count(glob("./assets/images/blog/timeline/*.*")); 
$blog2 = count(glob("./assets/images/blogdetails/*.*")); 
$gallery = count(glob("./assets/images/gallery/*.*")); 
$home = count(glob("./assets/images/home/*.*")); 
$keg = count(glob("./assets/images/kegiatan/*.*")); 
$port1 = count(glob("./assets/images/portfolio/*.*")); 
$port2 = count(glob("./assets/images/portfolio-details/*.*")); 
$srv = count(glob("./assets/images/services/*.*")); 
$usr = count(glob("./assets/images/users/*.*")); 
$count = $img+$about+$blog1+$mason+$tl+$blog2+$gallery+$home+$keg+$port1+$port2+$srv+$usr; 
?> 

帮助??

编辑: 完成。我的错。我没有统计某些文件夹中的子文件夹。

但是,还有一种方法可以缩短它吗?

+0

随着'recursivedirectoryiterator'可能? –

+0

如果有什么帮助你,你应该回答这个问题。或者回答你自己的问题 – SuperDJ

+0

我还是没有得到它 –

回答

0

这是你可以尝试的开始。您仍然需要对其进行修改来计算文件或计算给定的数组。

function getFromDir($dir) { 
    $cdir = scandir($dir); 
    $result = array(); 

    foreach($cdir as $key => $value) { 
     if(!in_array($value, array('.', '..'))) { 
      if(is_dir($dir . DIRECTORY_SEPARATOR . $value)) { 
       $result[$value] = getFromDir($dir . DIRECTORY_SEPARATOR . $value); 
      } else { 
       $result[] = $value; 
      } 
     } 
    } 

    return $result; 
} 

如果你想通过"./assets/images/"作为paramater它应该得到的所有子文件夹以及。

所以,你最终的东西,如:

$count = count(getFromDir("./assets/images/")); 
+0

我不知道如何实现这个Codeigniter –

+0

也许你应该问第二个问题Codeigniter。不要更新这个问题,因为很多人都不会看到这个问题,因为问题列表已经很深 – SuperDJ

相关问题