php - 将目录树生成为嵌套 html 列表时的 PHP 函数错误
问题描述
我有一个深度至少为 3 或 4 级的目录。我试图通过目录树进行递归,并生成一个 HTML 无序嵌套列表。
我使用的代码创建了一个嵌套的 HTML 列表,但它的目录深度顺序不正确。这是它目前正在生产的,这是不正确的。
这就是我想要实现的目标
我当前的代码如下。我需要修改哪个部分才能使其工作?
<?php
function read_dir_tree($parent_dir, $depth = 0){
$str_result = "";
$str_result .= "<li>". dirname($parent_dir) ."</li>";
$str_result .= "<ul>";
if ($handle = opendir($parent_dir))
{
while (false !== ($file = readdir($handle)))
{
if(in_array($file, array('.', '..'))) continue;
if( is_dir($parent_dir . "/" . $file) ){
$str_result .= "<li>" . read_dir_tree($parent_dir . "/" . $file, $depth++) . "</li>";
}
$str_result .= "<li>{$file}</li>";
}
closedir($handle);
}
$str_result .= "</ul>";
return $str_result;
}
function read_dir($tp){
$link = ($tp);
echo "<ul>".read_dir_tree($link)."</ul>";
}
?>
我使用以下方法从 HTML 调用这个 PHP:
<?php
read_dir("media");
?>
解决方案
max514,这里已经用一个完整的工作示例回答了这个问题。
RecursiveIteratorIterator 和 RecursiveDirectoryIterator 到嵌套的 html 列表
推荐阅读
- terminal - 在启动时运行终端并以 sudo 执行命令
- python - Keras 在单个 epoch 中打印出每批的结果,这是为什么呢?
- python - 非相邻对之间的 pct_change
- sql - 复合键中的一个字段可以依赖于另一个字段吗?
- java - Fetching data using hibernate with Netbeans
- sqlite - 从基于 JOIN 但使用不在 JOIN 或 SELECT 中的列的两个单独的 SQL 表中提取数据
- unit-testing - Spring-Webflux:处理函数单元测试抛出 UnsupportedMediaTypeStatusException
- sql-server - 使用日期表在期末进行中的事件的 dax
- javascript - Firebase signInWithEmailAndPassword not working as well
- javascript - React Native app doesn't show database items