使用php递归列出* .json文件

时间:2014-10-10 02:25:30

标签: php arrays

我使用php递归列出文件夹中的所有文件:

<?php

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

但是我希望这个脚本只列出* .json文件而不是所有文件。我怎样才能做到这一点?

非常感谢你的帮助。

2 个答案:

答案 0 :(得分: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 :(得分:1)

因为多样性:

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

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

$ ri将为每个.zzz文件包含一个索引数组。