【问题标题】:PHP: Get name of directories which doesn't contain file “input…”?PHP:获取不包含文件“输入...”的目录名称?
【发布时间】:2014-11-26 12:29:48
【问题描述】:

请给我一个使用 php 获取不包含文件“输入...”的目录名称的解决方案。我的文件夹结构是这样的:

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 有 "input.." 文件,所以它会得到 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);
     }
  }

}
?>

【问题讨论】:

    标签: php directory


    【解决方案1】:

    使用三重 = 因为 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);
         }
      }
    
    }
    

    【讨论】:

    • 我注意到您在 PHP 末尾还缺少一个 } 字符。你没有关闭while 循环。
    • 是的,它不显示输出。我添加了 } 但运行时它什么也没显示
    • 是的,我使用了错误的目录:D。但是,我仍然没有表现出我想要的东西
    • 虽然有些目录有文件输入...txt,但它仍然显示。我不想显示具有文件输入...txt 的目录。该怎么做?
    • 编辑了我的回答,你可以试试吗?只有正确的目录;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    • 2013-07-23
    • 1970-01-01
    相关资源
    最近更新 更多