Я хотел бы мой сценарий ScanDir рекурсивно,PHP ScanDir рекурсивно
$files = scandir('/dir');
foreach($files as $file){
if(is_dir($file)){
echo '<li><label class="tree-toggler nav-header"><i class="fa fa-folder-o"></i>'.$file.'</label>';
$subfiles = scandir($rooturl.'/'.$file);
foreach($subfiles as $subfile){
// and so on and on and on
}
echo '<li>';
} else {
echo $file.'<br />';
}
}
Я хотел бы, чтобы петля это таким образом, что для каждой директории, найденной ScanDir, он запускает другой ScanDir на папки, которые имеют были найдены в пределах этого каталога,
Так что dir 'A' содержит dir 1/2/3, теперь он должен быть scandir (1), scandir (2), scandir (3) и т. д. для каждого найденного каталога.
Как я могу легко реализовать это без копирования, вставляя код снова и снова в каждый файл foreach?
EDIT: поскольку ответы почти такие же, как я уже пробовал, я немного обновлю вопрос.
С помощью этого сценария мне нужно создать список древовидных изображений. С текущими размещены скрипты echo'd на следующий ПОЛУЧИТЬ, случается:
/images/dir1/file1.png
/images/dir1/file2.png
/images/dir1/file3.png
/images/anotherfile.php
/data/uploads/avatar.jpg
/data/config.php
index.php
То, что я на самом деле нужно:
<li><label>images</label>
<ul>
<li><label>dir1</label>
<ul>
<li>file1.png</li>
<li>file2.png</li>
<li>file3.png</li>
</ul>
</li>
<li>anotherfile.php</li>
</ul>
</li>
<li><label>data</label>
<ul>
<li><label>uploads</label>
<ul>
<li>avatar.jpg</li>
</ul>
</li>
<li>config.php</li>
</ul>
</li>
<li>index.php</li>
И так далее, спасибо за уже размещены ответы!
ряда рекурсивных основы программирования, is_dir ($ файл) должен быть is_dir («/ реж/$ файла») – Jack
использовать рекурсию ... –
проверить набор классов «recursiveIterator» - http://php.net/manual/en/class.recursivedirectoryiterator.php – RamRaider