Ниже приведен сценарий, который находит подкаталоги и сохраняет их в массиве. Когда я использую foreach для перехода по каталогу, я получаю и исключаю преобразование массива в строку. Я установил переменную foreach с помощью gettype, и показано, что это строка.
$dir = '/Video/Movies'; //base directory for search
$ar_dirlist[] = []; // array to store directory list
//Function to walk directories and store subdirectories in an array
function listFolderFiles($dir){
global $ar_dirlist;
$ffs = scandir($dir);
// $ffs = sortbydir($dir, $ffs);
unset($ffs[array_search('.', $ffs, true)]);
unset($ffs[array_search('..', $ffs, true)]);
// prevent empty ordered elements
if (count($ffs) < 1)
{
echo '<br />';
return;
}
//parse scandir output in array $ffs
foreach($ffs as $ff){
$phpfile = $dir . '/' . $ff;
if(is_dir($phpfile))
{
$ar_dirlist[] = $phpfile;
listFolderFiles($phpfile); //if directory recurse
}
}
}
listFolderFiles($dir);
foreach ($ar_dirlist as $tmpdir) {
echo '<h3>' . $tmpdir . '</h3>'; // This is line with error
//echo '<br />';
}