如何递归地迭代PHP中的文件?
我已经设置了一个基本脚本,该脚本正在发布一个路径数组以在其中查找模板文件;目前,它只搜索了两个级别的深度,我遇到了一些麻烦,我很难弄清楚一个广泛循环的逻辑,以迭代所有子目录,直到长度为0。
因此,如果我有这样的结构:
./components
./components/template.html
./components/template2.html
./components/side/template.html
./components/side/template2.html
./components/side/second/template.html
./components/side/second/template2.html
./components/side/second/third/template.html
./components/side/second/third/template2.html
它只在“侧面”目录中搜索.html文件,而理想情况下,我希望它检查所有子目录和传递的目录以查找.html文件。以下是我到目前为止的工作代码:
<?php
function getFiles($path){
$dh = opendir($path);
foreach(glob($path.'/*.html') as $filename){
$files[] = $filename;
}
if (isset($files)) {
return $files;
}
}
foreach ($_POST as $path) {
foreach (glob($path . '/*' , GLOB_ONLYDIR) as $secondLevel) {
$files[] = getFiles($secondLevel);
}
$files[] = getFiles($path);
}
sort($files);
print_r(json_encode($files));
?>