使用 glob 对多种文件类型进行 PHP 递归目录搜索

标签 php glob

我有一堆文件夹,其中分布着这些文件类型.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;
}

不确定哪里出了问题。

最佳答案

最终使用了这个:

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 递归目录搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25257717/

相关文章:

java - 如何为 Dataflow 作业指定多个输入路径

php - 我如何知道是否启用了任何 PHP 缓存?

php - 为什么 file_get_contents 在 PHP 中不起作用?

php - 在 php 中读取数据的 mysql 或 csv 哪个好

directory - 具有不同独立主题的 Sphinx 文档

括号目录中的 PHP glob()

PHP echo 变量和 html 在一起

PHP MYSQL PDO -> Fatal Error 23000 eventhough a special procedure is place

linux - 在linux中删除以2位数字结尾的文件

python - Pandas 添加文件创建日期作为变量