我编写了一个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 />';
}
?>
提前非常感谢!!!
答案 0 :(得分:2)
您可以堆叠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并在其上堆叠另一个迭代器才能使其工作,这似乎是违反直觉的。这方面的文件可能会更好。
答案 1 :(得分:1)
我可以建议使用RecursiveDirectoryIterator创建一个类来迭代文件(子)目录及其文件。与其中一个递归过滤器迭代器php一起提供的只能返回图像文件。
还有一个GlobIterator,但我不确定它是否也会进行递归迭代。