我使用count(glob("test/*"))
来计算test
文件夹中的子文件夹,但现在我还有test
文件夹中的文件,而不仅仅是文件夹,我的结果不正确。有没有办法修改glob
模式,以便它只返回文件夹,而不是文件?
我考虑过一种解决方法。获取文件夹和文件的总数,仅获取文件数,然后从整数中减去文件数。
$total_items = count(glob("test/*"));
$total_files = count(glob("test/*.*"));
$folder_count = $total_items - $total_files;
这样可行,但可能有一种更简单的方法。
答案 0 :(得分:10)
您必须使用选项$dir = "test";
$n = 0;
$dh = opendir($dir);
while (($file = readdir($dh)) !== false) {
if ($file != "." && $file != ".." && is_dir($dir . DIRECTORY_SEPARATOR . $file)) {
$n++;
}
}
closedir($dh);
echo $n . " subdirectories in " . $dir;
才能返回目录:
GLOB_ONLYDIR
答案 1 :(得分:1)
如果目录中的点名为some.dir
,则您当前的解决方案可能会失败。为了获得更好的结果,您可以检查每个结果以查看它们是否是文件。类似的东西:
count(array_filter(glob("test/*"), "is_dir"))
答案 2 :(得分:0)
我会尝试这样的事情,使用readdir()并使用is_dir()测试(http://php.net/manual/en/function.opendir.php)
{{#if isInRole 'manage-team' 'manchester-united.com'}}
<h3>Manage Team things go here!</h3>
{{/if}}