我有一个带有两个文件夹的目录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具有子文件夹”,这是不正确的。我究竟做错了什么?
可以,虽然不是我想要的方式,但是在glob由于某种原因而无法按预期方式运行之后,II而是选择再次扫描目录并对目录进行排序,以使文件夹位于数组的第一位。然后我只是检查了第一个元素是否是目录。
if(is_dir($link))
{
$folders = scandir($link, 1);
if(is_dir($link.'/'.$folders[0]))
{
echo $link." ";
echo "Has Sub-folders ";
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句