2014-10-10 54 views
1

我使用PHP來遞歸地列出文件夾中的所有文件上傳.json文件:上市*遞歸地使用PHP

<?php 

$it = new RecursiveDirectoryIterator("."); 
foreach(new RecursiveIteratorIterator($it) as $file) 
{ 
    echo $file . "<br/> \n"; 
} 

但我想這個腳本只列出*以.json文件,而不是所有文件。我怎樣才能做到這一點?

非常感謝您的幫助。

+1

['fnmatch'](http://php.net/fnmatch),['preg_match'](HTTP:// PHP。 net/preg_match)或['RegexIterator'](http://php.net/RegexIterator)如果你想與主題。 – mario 2014-10-10 02:28:06

回答

1

你可以使用->getExtension()方法檢查出的foreach內:

$it = new RecursiveDirectoryIterator("."); 
foreach(new RecursiveIteratorIterator($it) as $file) { 
    if($file->getExtension() == 'json') { // add a condition here 
     echo $file . "<br/> \n"; 
    } 
} 
1

由於多種:

$rdi = new RecursiveDirectoryIterator('.'); 
$rii = new RecursiveIteratorIterator($rdi); 
$ri = new RegexIterator($rii, '/^.+\.zzz$/i', RecursiveRegexIterator::GET_MATCH); 

foreach ($ri as $file) { ... } 

$裏將包含每個.zzz文件一個索引數組。