如何从所有子目录中获取图像名称?

时间:2016-10-12 08:53:16

标签: php

我使用以下php代码从相关目录中获取所有图像名称。

$dir = "images";
$images = scandir($dir);
$listImages=array();
foreach($images as $image){
    $listImages=$image;
    echo ($listImages) ."<br>";
}

这个完美无缺。但我想从相关目录中获取所有子目录中的所有图像文件名。父目录不包含图像,所有图像都包含在子文件夹中作为folows。

  • 家长Dir
    • Sub Dir
      • image1的
      • IMAGE2
    • Sub Dir2
      • 图像3
      • 图像4

如何浏览所有子文件夹并获取图像名称?

2 个答案:

答案 0 :(得分:1)

利用递归,你可以很容易地做到这一点。此函数将无限期地遍历您的目录,直到每个目录完成搜索。这没有被测试过。

$images = [];

function getImages(&$images, $directory) {
    $files = scandir($directory); // you should get rid of . and .. too

    foreach($files as $file) {
        if(is_dir($file) {
            getImages($images, $directory . '/' . $file);
        } else {
            array_push($images, $file); /// you may also check if it is indeed an image
        }
    }
}

getImages($images, 'images');

答案 1 :(得分:1)

试试以下内容。要获取完整目录路径,请与父目录合并。

$path = 'images'; // '.' for current
   foreach (new DirectoryIterator($path) as $file) {
   if ($file->isDot()) continue;

   if ($file->isDir()) {
       $dir = $path.'/'. $file->getFilename();

   $images = scandir($dir);
       $listImages=array();
       foreach($images as $image){
           $listImages=$image;
           echo ($listImages) ."<br>";
       }
   }
}