首页 >后端开发 >php教程 >如何在 PHP 中递归列出文件和子目录?

如何在 PHP 中递归列出文件和子目录?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-13 10:10:02691浏览

How to Recursively List Files and Subdirectories in PHP?

在 PHP 中递归列出文件和子目录

列出给定目录中的所有子目录、文件和子文件夹可能是一项常见任务。在 PHP 中,这可以使用 scandir() 函数来实现。

让我们考虑一个具有以下目录结构的场景:

<br>Main Dir<br>目录1<br>子目录1<br>文件1<br>文件2<br>子目录2<br>文件3<br>文件4<br>目录2<br>子目录3<br>文件5<br>文件6<br>子目录4<br>文件7<br> File8<br>

您的目标是检索每个文件夹中包含的所有文件的列表。

解决方案

PHP 不提供与 ls 等 shell 脚本命令直接等效的命令。但是,您可以使用 PHP 函数实现递归列表。下面是示例代码片段:

function listFolderFiles($dir){
    $ffs = scandir($dir);

    unset($ffs[array_search('.', $ffs, true)]);
    unset($ffs[array_search('..', $ffs, true)]);

    if (count($ffs) < 1)
        return;

    echo '<ol>';
    foreach($ffs as $ff){
        echo '<li>'.$ff;
        if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff);
        echo '</li>';
    }
    echo '</ol>';
}

用法

使用要处理的目录路径调用 listFolderFiles() 函数,如下所示:

listFolderFiles('Main Dir');

该函数将输出代表目录结构的分层组织的 HTML 列表,并相应列出文件和子目录。

以上是如何在 PHP 中递归列出文件和子目录?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn