簡體   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