2013-07-05 55 views
3

我想獲得具有文件夾如何在PHP中使用scandir過濾文件名列表?

而不是使用

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

是否有任何捷徑或這是最好的方式「_img」和PDF類型的所有文件?感謝

回答

2

使用PHP glob()功能

的水珠(),用於根據由所述的libc水珠()函數,其類似於由普通殼使用的規則使用的規則匹配圖案的所有路徑名函數搜索

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

還有fnmatch()功能相匹配的文件名對一個圖案

最後的解決方案是使用DirectoryIteratorFilterIterator

2

對我來說這很好。 你走進你的目錄並將其存儲到一個數組中。

在這個級別,不需要優化。你會贏得花生的時間來優化這個。