2011-12-30 23 views
-3

可能重複:
Finding a file with a specific name with any extension檢索目錄的阿拉JPG文件的列表

我已經這個代碼放入陣列中的所有文件到目錄

$directory = "./"; 
$ourDirList = scandir($directory); 
$arraylistafiles=array(); 

foreach($ourDirList as $ourItem) 
{ 
    if (is_file($ourDir . $ourItem)) 
    {$arraylistafiles[]=$ourItem;} 
} 

但是,如果我只想放置具有「.jpg」擴展名的文件,我可以做什麼?

+0

「我能做什麼?」那麼,你可以使用搜索功能,因爲這已經被回答了幾十次甚至更多。 – Gordon 2011-12-30 18:10:13

回答

0
if(is_file($ourDir.$ourItem) && substr($ourItem,-4) == '.jpg') { 
    // 
} 
6

使用PHP的glob()可以避開is_file()調用,因爲glob將只返回實際存在的目錄中的文件。有不需要在你的情況下創建一個UDF(用戶定義的函數)。

$dir = './'; 
foreach(glob($dir.'*.jpg') as $file) { 
    print $file . "\n"; 
} 

UPDATE

從您的評論很明顯,你不知道如何​​3210作品。你可以實現你試圖做這樣的:

$arraylistafiles = glob($dir.'*.jpg');

+0

我寫 的foreach { 如果(is_file($ ourDir $ ourItem)。) {$ arraylistafiles [] = $ ourItem;} }(水珠($ ourDir)爲$ ourItem。 '* JPG'。) 但donesn'st工作 – user1088417 2011-12-30 18:40:48

+0

你不需要所有額外的代碼...'glob()'給你你想創建的文件數組('arraylistafiles')。另外,「不起作用」是不明確的 - 一個實際的錯誤信息是無限多的幫助。你可以這樣做:'$ arraylistafiles = glob($ dir。'*。jpg');' – rdlowrey 2011-12-30 19:11:31

0

可以使用波紋管的功能。

public function getFileList($dirpath,$list_ignore,$list_allowed_ext) 
    { 
     $filelist = array(); 
     if ($handle = opendir(dirname ($dirpath))) 
     { 
      while (false !== ($file = readdir($handle))) 
       { 
        if (!is_dir($file) && !in_array($file,$list_ignore) && in_array(strtolower(end(explode('.',$file))),$list_allowed_ext)) 
        { 
         $filelist[] = $file; 
        } 
       } 
      closedir($handle); 
     } 

     return $filelist; 
    } 

實施將是貌似..

$fileTypes = array ("jpg"); 
$list_ignore = array ('.','..'); 
$fileList = getFileList("./",$list_ignore,$fileTypes); 

乾杯!

0

首先,您必須檢查文件在foreach數組中的文件擴展名。 。如果擴展名爲jpg,則將該項目添加到新陣列中。 。 。希望你能理解。 。

相關問題