2012-05-31 49 views
0

如何有效地确定PHP中目录的目录数量?确定目录中的目录数量

例如,可以说我有这样的结构:

/Directory/ --> 
... /Directory 1/ 
... /Directory 2/ 
... /Directory 3/ 
... File.txt 
... Filed2.txt 

将是伟大的知道,他们的3个目录,从而不包括当前或文件本身。

+0

扫描目录并使用'is_dir()' –

回答

2
$path = 'Directory'; 
echo (count (glob("$path/*", GLOB_ONLYDIR))); 
+0

快速且容易记忆。但是,这会计算目录本身中的目录,还是只从主目录中进入一步? – Shaz

+0

它应该统计给定路径中的目录 –

2

此代码将做到这一点:

$count = -2; // Subtract 2 for directories "." and ".." 
$dh = opendir('path/to/dir'); 
while (false !== ($filename = readdir($dh))) 
    if(is_dir($filename)) 
     $count++; 

原因分配$count-2是考虑到当前目录的父目录。这将包括隐藏的所有目录。如果您不想在Linux系统上隐藏,只需检查第一个字符是否使用false !== strpos($filename, '.').,并将$count初始化为0而不是-2