繁体   English   中英

如何在PHP中使用scandir获取过滤的文件名列表?

[英]How to get filtered file name list using scandir in PHP?

我想在文件夹中获取所有'_img'和PDF类型的文件

而不是使用

$fileArray = scandir($dir);
foreach ($fileArray as $file) {
    if (preg_match("_img",$file) && pathinfo($file, PATHINFO_EXTENSION) == 'pdf'){
        $filteredArray[] = $file;
    }
}

有没有捷径或者这是最好的方式? 谢谢

使用php glob()函数

glob()函数根据libc glob()函数使用的规则搜索匹配模式的所有路径名,这类似于常见shell使用的规则

<?php 
  $filteredArray = array();
  foreach (glob($dir."/*_img.pdf") as $filename)
     $filteredArray[] = $filename;
?>

还有fnmatch()函数,它将文件名与模式匹配

最后一个解决方案是将DirectoryIteratorFilterIterator一起使用

对我来说,这很好。 你走进你的目录并将其存储到一个数组。

在此级别,不需要优化。 你会赢得花生失去时间来优化这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM