在 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中文网其他相关文章!