迭代子文件夹并从定义的字符串开始收集文件路径

时间:2014-07-09 21:46:53

标签: php

我正在建立一个拥有"画廊"带图像的文件夹。在"画廊内#34;文件夹还有其他子文件夹,每个图像类别一个。例如:

gallery
   |---foo
   |---bar
   |---cat

在这些文件夹中,其他一些图像的名称以#34;幻灯片显示_"开始。

我想编写一个脚本来搜索" gallery"中的所有文件夹。并在数组变量中分配它们的路径。子文件夹的名称和数量应视为未知。

我知道如何通过硬编码名称和合并来自glob('gallery/{name}/slideshow_*')的结果来做到这一点,但我想要更好的东西,最好是SPL。我试过这个没有成功:

$dir = new RecursiveDirectoryIterator('assets/img/gallery');

foreach (new RecursiveIteratorIterator($dir) as $filename => $file) {
      $slideshow_images[] = glob('slideshow_*');      
}

1 个答案:

答案 0 :(得分:3)

如果您可以使用Symfony Finder,这是一件轻而易举的事:

use Symfony\Component\Finder\Finder;

$finder = new Finder();
$finder->files()->in('assets/img/gallery')->name('slideshow_*');
foreach ($finder as $file) {
    // Do magic here
}

http://symfony.com/doc/current/components/finder.html