我具有以下PHP函数,该函数从给定路径返回所有带有html li
元素的文件夹。
function folderTree ($directory_path) {
if(!file_exists($directory_path)) {
die("The file $directory_path is not exists");
}
if(!is_dir($directory_path)) {
die("This directory $directory_path can't open");
}
$directory = opendir($directory_path);
$filenames = [];
while ($filename = readdir($directory)) {
if($filename !== '.' && $filename !== '..') {
if(is_dir($directory_path.'/'.$filename)) {
$filename .= '/';
}
$filenames[] = $filename;
}
}
echo "<ul>";
foreach ($filenames as $filename) {
echo "<li><a href='{$directory_path}/{$filename}'>";
echo $filename;
if(substr($filename, -1) == '/' ) {
folderTree($directory_path.'/'.substr($filename, 0, -1)).'/lv2/';
}
echo "</a></li>";
}
echo "</ul>";
}
现在一切正常,输出如下:
img-01
img01.jpg
img02.jpg
img03.jpg
img-02
img01.jpg
img02.jpg
img03.jpg
img-03
img01.jpg
img02.jpg
img03.jpg
此img-01
,02
和03
是一个文件夹,并且存在.jpg
个文件。
现在,您可以看到上面的代码,它会将所有文件夹的所有文件包装在单个ul
元素中,对。
但是我希望它不应该一次全部地按文件夹包装每个文件夹。
现在代码输出是这样的:
<ul><li>jpg...</li><li>jpg...</li><li>jpg...</li><li>jpg...</li> só on..</ul>
但是我需要:
<ul><li>jpg...</li><li>jpg...</li><li>jpg...</li></ul>
<ul><li>jpg...</li><li>jpg...</li><li>jpg...</li></ul>
<ul><li>jpg...</li><li>jpg...</li><li>jpg...</li></ul>