【问题标题】:PHP recursive directory search using glob for multiple file types使用 glob 对多种文件类型进行 PHP 递归目录搜索
【发布时间】:2014-10-05 03:12:45
【问题描述】:

我有一堆文件夹,其中分布着这些文件类型.mp4,.flv,.wmv,.mov

/video/o/y/oyr800/clips/1.flv
/video/p/y/pyr800/clips/1.wmv
/video/q/y/qyr800/clips/1.mp4
/video/51/51.mov
/video/52/52.flv

我尝试使用此函数列出路径和文件名,但它给了我一个空白返回:

print_r(rglob('{*.mp4,*.flv,*.wmv,*.mov}',GLOBAL_BRACE));

function rglob($pattern, $flags = 0) {
  $files = glob($pattern, $flags); 
  foreach (glob(dirname($pattern).'/*', GLOB_ONLYDIR|GLOB_NOSORT) as $dir) {
    $files = array_merge($files, rglob($dir.'/'.basename($pattern), $flags));
  }
  return $files;
}

不知道哪里出了问题。

【问题讨论】:

    标签: php glob


    【解决方案1】:

    最终使用了这个:

    print_r(rsearch("C:\wamp\www","/^.*\.(mp4|flv|wmv|mov)$/"));
    
    function rsearch($folder, $pattern) {
      $dir = new RecursiveDirectoryIterator($folder);
      $ite = new RecursiveIteratorIterator($dir);
      $files = new RegexIterator($ite, $pattern, RegexIterator::GET_MATCH);
      $fileList = array();
      foreach($files as $file) {
        $fileList[] = $file[0];
      }
      return $fileList;
    }
    

    效果很好!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-17
      • 1970-01-01
      • 2012-01-30
      • 2011-06-01
      • 2012-04-07
      • 2017-02-25
      • 1970-01-01
      相关资源
      最近更新 更多