我有一个带有两个文件夹的TestRoot目录:TestFolderA,它具有另一个文件夹和两个文件,以及TestFolderB,它仅具有一个文件。我正在尝试检查这些文件夹本身是否包含更多文件夹。
<!DOCTYPE html>
<html dir="ltr" lang="en-US">
<head>
</head>
<body class="stretched">
<?php
$root = "docs/RootTest";
$files = scandir($root);
foreach($files as $file)
{
if ($file != '.' && $file != '..')
{
$link = $root.'//'.$file;
if(is_dir($link)) //Check if file is a folder
{
$folders = glob($link."/", GLOB_ONLYDIR);
if(count($folders)>0) //Check if it contains more folders
{
echo $link." ";
echo "Has Sub-folders ";
}
else
{
echo $link." ";
echo "None ";
}
}
}
}
?>
</body>
</html>
当我运行此代码时,输出是“ docs / RootTest // TestFolderA具有子文件夹”,这是正确的,但是我也得到了输出“ docs / RootTest // TestFolderB具有子文件夹”,这是不正确的。我在做什么错了?
答案 0 :(得分:1)
checked
您还可以尝试在$dirs = array_filter(glob('*'), 'is_dir');
print_r( $dirs);
之后跟随glob()
选项
答案 1 :(得分:1)
换行
$ folders = glob($ link。“ /”,GLOB_ONLYDIR);
到
$ folders = glob($ link。“ / *”,GLOB_ONLYDIR);
只需添加“ *”
答案 2 :(得分:0)
好吧,虽然不是我想要的方式,但是在glob由于某种原因而无法按预期方式运行后,我改为选择再次扫描目录并对目录进行排序,以使文件夹位于数组的第一位。然后我只是检查第一个元素是否是目录。
<div class="grid-x fluid grid-margin-x">
<div class="small-9 cell content-cell">small 9</div>
<div class="small-3 cell">
<div class="grid-y grid-margin-y">
<div class="small-6 cell content-cell">small 6</div>
<div class="small-6 cell content-cell">small 6</div>
</div>
</div>
</div>
答案 3 :(得分:-1)
PHP is_dir()
函数
is_dir()函数检查指定的文件是否为目录。
如果目录存在,此函数将返回TRUE。
<?php
$file = "images";
if(is_dir($file))
{
echo ("$file is a directory");
}
else
{
echo ("$file is not a directory");
}
?>
输出:
images is a directory