PHP:获取不包含文件“input ...”的目录名称?

时间:2014-11-26 12:29:48

标签: php directory

请给我一个解决方案,获取使用php不包含文件“input ...”的目录名称。我的文件夹结构如下:

Main Dir
  namedirectory.php
  Dir1
    File1
    input_1.txt
    File
  Dir2
    File5
    File6
  Dir3
    File1
    input_2.txt
  Dir4
    File1
    File2
  Dir5
    File1
    File2

因为Dir1和Dir3有"输入.."文件,因此它将获得name = dir2,dir4,dir5。我有代码,但它不起作用。请帮我解决一下!

<?php
$dir ='/directory';
while($dirs = glob($dir . '/*', GLOB_ONLYDIR)) {
  $dir .= '/*';
  if(!$d) {
     $d=$dirs;
   } else {
      $d=array_merge($d,$dirs);     
   }

  foreach ($d as $d) {

     if ($handle = opendir($d)) {
        while ($entry = readdir($handle)) {
           if (strpos($entry, "input") === FALSE) {
               echo $d;
               break;
           }
        }
      closedir($handle);
     }
  }

}
?>

1 个答案:

答案 0 :(得分:0)

使用tripple =因为PHP会将false强制转换为0,这将是真的。

变化:

if (strpos($entry, "input") == FALSE) {

if (strpos($entry, "input") === FALSE) {

修改

$dir ='/directory';
while($dirs = glob($dir . '/*', GLOB_ONLYDIR)) {
  $dir .= '/*';
  if(!$d) {
     $d=$dirs;
   } else {
      $d=array_merge($d,$dirs);     
   }

  foreach ($d as $d) {

     if ($handle = opendir($d)) {
        $showDirectory = true;
        while ($entry = readdir($handle)) {
           if (strpos($entry, "input") !== FALSE) {
                $showDirectory = false;
                break;
           }
        }
        if($showDirectory)
        {
            echo $d;
        }
      closedir($handle);
     }
  }

}