Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Glob获取目录和子目录中的图像_Php - Fatal编程技术网

Php 使用Glob获取目录和子目录中的图像

Php 使用Glob获取目录和子目录中的图像,php,Php,我编写了一个PHP脚本来获取某个目录中的所有图像并显示它们,尽管我希望能够在指定目录的子目录中也显示图像 例如,现在我的脚本只得到以下图像 上传/prevImgs/145323.png 上传/prevImgs/276531.png 我想从哪里得到以下信息 <?php // Directory Path Of Library Preview Images // $dirname = "uploads/prevImgs/"; $images = glob("{$dirname}*.

我编写了一个PHP脚本来获取某个目录中的所有图像并显示它们,尽管我希望能够在指定目录的子目录中也显示图像

例如,现在我的脚本只得到以下图像

上传/prevImgs/145323.png

上传/prevImgs/276531.png

我想从哪里得到以下信息

<?php
  // Directory Path Of Library Preview Images //
  $dirname = "uploads/prevImgs/";
  $images = glob("{$dirname}*.*");
  foreach($images as $image) {
    echo '<img src="'.$image.'" /><br />';
  }
?>
上传/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创建一个类来遍历(子)目录的文件及其文件。与php提供的递归过滤器迭代器一起,您只能返回图像文件


还有一个GlobIterator,但我不确定它是否也执行递归迭代。

您可以堆叠一个RecursiveDirectoryIterator和一个recursiveIteratoryIterator来获得您想要的效果:

$rdi = new RecursiveDirectoryIterator("uploads/prevImgs/");
$it = new RecursiveIteratorIterator($rdi);
foreach($it as $oneThing)
    if (is_file($oneThing))
        echo '<img src="'.$oneThing.'" /><br />';
$rdi=new recursivedirectoryinterator(“uploads/prevImgs/”;
$it=新的递归迭代器($rdi);
foreach($oneThing)
if(is_文件($oneThing))
回声“
”;
我知道,你必须使用递归DirectoryIterator并将另一个
迭代器堆叠在其上以使其工作,这似乎是违反直觉的。这方面的文件可能更好