遍历目录并使用PHP获取文件,并将每个文件夹文件包装在ul li元素中

时间:2019-01-22 08:29:39

标签: php

我具有以下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-010203是一个文件夹,并且存在.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>

0 个答案:

没有答案