且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在PHP中递归收集图像文件路径

更新时间:2023-11-09 13:44:16

虽然andreas的答案可能有效,但你也可以让PHP 5的 RecursiveDirectoryIterator 为您工作并使用更多OOP方法。

While andreas' answer probably works, you can also let PHP 5's RecursiveDirectoryIterator do that work for you and use a more OOP approach.

这是一个简单的例子:

$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path));

while ($it->valid())
{
  if ($it->isDot())
    continue;

  $file = $it->current();
  if (self::is_image($file->pathName))
  {
    $files[] = $file->pathName;
  }

  $it->next();
}

编辑:

或者,可以尝试这(从Zend_Translate_Adapter复制):

Alternatively, you could try this (copied from Zend_Translate_Adapter):

$it = new RecursiveIteratorIterator(
                new RecursiveRegexIterator(
                    new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::KEY_AS_PATHNAME),
                    '/^(?!.*(\.svn|\.cvs)).*$/', RecursiveRegexIterator::MATCH
                ),
                RecursiveIteratorIterator::SELF_FIRST
            );

foreach ($it as $dir => $info)
{
  var_dump($dir); 
}

干杯

克里斯