【问题标题】:How to get filtered file name list using scandir in PHP?如何在 PHP 中使用 scandir 获取过滤后的文件名列表?
【发布时间】:2013-07-03 08:59:27
【问题描述】:

我想在一个文件夹中获取所有具有“_img”和 PDF 类型的文件

而不是使用

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

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

【问题讨论】:

    标签: php file scandir


    【解决方案1】:

    使用phpglob()函数

    glob()函数根据libc glob()函数使用的规则搜索所有匹配pattern的路径名,类似于普通shell使用的规则

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

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

    最后的解决方案是使用DirectoryIteratorFilterIterator

    【讨论】:

      【解决方案2】:

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

      在这个级别上,不需要优化。你会赢得花生浪费时间来优化它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-14
        • 1970-01-01
        • 1970-01-01
        • 2017-10-25
        • 1970-01-01
        • 1970-01-01
        • 2011-01-14
        相关资源
        最近更新 更多