Как найти все имена файлов каталога или папки и ее подкаталогов или подпапок. Я использую scandir()
, но он возвращает имена файлов и подкаталогов только из корневого каталога. Если у кого-нибудь есть решение, пожалуйста, предложите.
<?php
$dir = 'mydir/';
$files = scandir($dir);
?>
Я нашел решение. Я создал скрипт, используя это, мы можем получить или перечислить все файлы каталога и его подкаталогов. Его работа прекрасна. Там mydir предполагается как путь к каталогу
function listDirFiles($dir){
foreach(glob("$dir/*") as $ff){
is_dir($ff) ? listDirFiles($ff) : $GLOBALS['a'][] = basename($ff);
}
}
listDirFiles('mydir');
echo "<pre>", print_r($GLOBALS['a']), "</pre>";
Ответ здесь может дать вам больше света.
Что бы я сделал (как в ответе), запустил цикл foreach для каждого каталога, а затем перечислил в него файлы в каталогах. В основном просто промыть и повторить. PHP выполняет scandir()
аналогичную команде ls
в Linux.
Попробуй это
$filelist = array();
if ($handle = opendir("."))
{
while ($entry = readdir($handle)) {
if (is_file($entry)) {
$filelist[] = $entry;
}
}
echo "<pre>";
print_r($filelist);
closedir($handle);
}
Это то, что я использую в своем проекте, это будет только возвращать файл, но не папку, а рекурсивно.
$dir = new RecursiveIteratorIterator(new RecursiveDirectoryIterator("mydir/") );
$dir->setFlags(4096 | 8192);
foreach ($dir as $value) {
echo $dir->getSubPathname();
}