У меня есть PHP-скрипт, написанный, чтобы захватить все изображения в определенном каталоге и отобразить их, хотя я хочу иметь возможность отображать изображения также в подкаталогах указанного каталога.
Так, например, прямо сейчас мой скрипт получает только следующие изображения
добавления / prevImgs / 145323.png
добавления / prevImgs / 276531.png
Где id хочет получить следующее
добавления / prevImgs / 145323.png
добавления / prevImgs / 276531.png
добавления / prevImgs / dir1 / 12323.png
добавления / prevImgs / dir2 / 212331.png
Мой текущий скрипт следующий
<?php // Directory Path Of Library Preview Images // $dirname = "uploads/prevImgs/"; $images = glob("{$dirname}*.*"); foreach($images as $image) { echo '<img src="'.$image.'" /><br />'; } ?>
Огромное спасибо заранее!
Вы можете скомпилировать RecursiveDirectoryIterator и RecursiveIteratorIterator, чтобы получить эффект, который вы ищете:
$rdi = new RecursiveDirectoryIterator("uploads/prevImgs/"); $it = new RecursiveIteratorIterator($rdi); foreach($it as $oneThing) if (is_file($oneThing)) echo '<img src="'.$oneThing.'" /><br />';
Я знаю, кажется контр-интуитивным, что вам нужно взять RecursiveDirectoryIterator и выложить еще один итератор поверх него, чтобы он работал. Документация в этой области может быть лучше.
Я могу предложить использовать RecursiveDirectoryIterator для создания класса для итерации через файлы (под) каталогов и его файлов. Вместе с одним из рекурсивных итераторов фильтра php предлагает вы можете возвращать только файлы изображений.
Существует также GlobIterator, но я не уверен, что он также выполняет рекурсивные итерации.