RecursiveDirecrtoryIterator

时间:2015-07-21 08:26:31

标签: php recursion iterator filesystems

我正在尝试使用RecursiveDirectoryIterator,RecursiveIteratorIterator和RegexIterator使用以下代码获取完整的文件结构,以获取系统中的所有.php文件:

$directory = new RecursiveDirectoryIterator(realpath("/"));
$iterator = new RecursiveIteratorIterator($directory);
$regex = new RegexIterator($iterator, '/^.+\.php$/i', RecursiveRegexIterator::GET_MATCH);

但是当我var_dump $ regex时,我得到了这个:

  

对象(RegexIterator)[4431]
   公共'替换' =>空

我在这里做错了什么?我难倒......

注意
我从以下代码获得了此代码:here

1 个答案:

答案 0 :(得分:1)

$regex是一个"迭代器",你需要迭代它(例如使用foreach($ regex as $ file)来获取各个值。

您需要迭代/遍历该对象 - 就像您在数据库结果集上迭代一样 - 获取单个值:

foreach($regex as $file) {
    var_dump($file);
}

请注意,$file在这种情况下是一个数组,其中一个字符串值(完整文件路径)作为唯一条目