使用glob对多种文件类型进行PHP递归目录搜索 [英] PHP recursive directory search using glob for multiple file types

查看:56
本文介绍了使用glob对多种文件类型进行PHP递归目录搜索的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一堆文件夹,这些文件类型遍布它们 .mp4, .flv, .wmv, .mov

I have a bunch of folders with these file types spread across them .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

我尝试使用此功能列出路径和文件名,但这给了我空白的回报:

I tried using this function to list the paths and filenames but it gives me a blank return:

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;
}

不确定是什么问题.

推荐答案

最终使用此:

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;
}

太棒了!

这篇关于使用glob对多种文件类型进行PHP递归目录搜索的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆