目录和子目录列为树状视图菜单

时间:2019-04-19 15:35:03

标签: php directory treeview directory-listing

您好,我想列出目录和子目录(仅,无文件) 作为树状视图菜单

<ul class="tree-menu">
  <li>Directory I</li>
    <ul>
      <li>Sub 1</li>
        <ul>
          <li>sub a</li>
          <li>sub b</li>
        </ul>
      <li>Sub 2</li> 
    </ul>
  <li>Directory II</li>
  <li>Directory III</li>
</ul>

我首先写了2个函数来检查目录中是否有其他目录 第二个用于列出目录和子目录

两者都工作良好,但先嵌套后又发生故障

function dir_is_empty($path)
        {
          $empty = true;
          $dh = @opendir($path);
          while (false !== ($file = readdir($dh))) {
            if ($file !== "." && $file !== "..") {
              if (is_dir($file)) {
                $empty = false;
                break;
              }
            }
          }
          closedir($dh);
          return $empty;
        }

        function getDirectory($path)
        {
          $ignore = array('cgi-bin', '.', '..');
          $dh = @opendir($path);
          while (false !== ($file = readdir($dh))) {
            if (!in_array($file, $ignore)) {
              if (dir_is_empty("$path/$file")) {
                if (is_dir("$path/$file")) {
                  echo "<li>$path/$file</li>";
                  getDirectory("$path/$file");
                }
              } else {
                echo "<ul>";
                if (is_dir("$path/$file")) {
                  echo "<li>$path/$file</li>";
                  getDirectory("$path/$file");
                }
                echo "</ul>";
              }
            }
          }
          closedir($dh);
        }

        getDirectory(".");

0 个答案:

没有答案