【问题标题】:php dropdown list of folders and sub folders inside a directory目录中文件夹和子文件夹的php下拉列表
【发布时间】:2011-06-26 19:21:16
【问题描述】:

我正在寻找构建一个 php 函数,它将列出特定目录中的所有文件夹和子文件夹,但转义列表中的某个目录文件夹/子文件夹。

 $dir = "directory_to_scan_for_folders"
 $escape_folder = "folder_to_escape";

     function listFolders($dir) {
             $items = glob($dir . '/*', GLOB_ONLYDIR);
             for ($i = 0; $i < count($items); $i++) {
                 if (is_dir($items[$i])) {
                     $add = glob($items[$i] . '/*',GLOB_ONLYDIR);
                     $items = array_merge($items, $add);
                 }
             }
             return $items;
         }

我已经能够使用上述功能列出所有文件夹,但不知道如何从列表中转义 $escape_folder 文件夹及其子文件夹。

注意:“escape_folder”表示文件夹 我不想在列表中显示。

【问题讨论】:

  • “转义文件夹”是什么意思?您的意思是要避免在列表中显示它们?
  • 转义文件夹是什么意思?
  • 顺便说一下,您可以使用目录迭代器php.net/manual/en/class.directoryiterator.php。它可以帮助您生成更清晰的代码。

标签: php directory


【解决方案1】:

假设“转义文件夹”是指您不想在列表中看到的文件夹,请在 if (is_dir($items[$i])) { 之后立即插入以下行:

if ($escape_folders == $items[$i]) continue;

但是看看foreach而不是for,正如petraszd所说,如果可以的话,你可能想看看Directory iterator。在这种情况下,你会使用:

if ($escape_folders == $file->getBasename()) continue;

【讨论】:

  • 谢谢@mjac。你的一行代码帮助我解决了我的问题。
猜你喜欢
  • 2011-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-20
  • 1970-01-01
  • 2014-06-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多