2014-10-10 55 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文件一个索引数组。