如何使用glob检查文件夹中是否包含子文件夹?

时间:2018-12-27 09:01:19

标签: php

我有一个带有两个文件夹的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具有子文件夹”,这是不正确的。我在做什么错了?

4 个答案:

答案 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