RecursiveDirectoryIterator + RecursiveIteratorIterator + RegexIterator不能正常工作

时间:2012-05-03 08:42:57

标签: php tree iterator subdirectory

我喜欢在Subdirectories目录中获取所有.less文件。我在php.net找到了漂亮的代码。

我做错了吗?有什么变化?示例错了吗?看起来第一个找到.less.bak文件。

$Directory = new RecursiveDirectoryIterator( CHILD_DIR . '/less' );
$Iterator = new RecursiveIteratorIterator( $Directory );
$Regex = new RegexIterator($Iterator, '/^.+\.less$/i', RecursiveRegexIterator::GET_MATCH);

print_r( $Directory  );
print_r( $Iterator  );
print_r( $Regex  );

输出如下:

RecursiveDirectoryIterator Object
(
    [pathName:SplFileInfo:private] => /var/www/secret/wayne/wp-content/themes/bootgen_child/less/bootgen_layout.less.bak
    [fileName:SplFileInfo:private] => bootgen_layout.less.bak
    [glob:DirectoryIterator:private] => 
    [subPathName:RecursiveDirectoryIterator:private] => 
)
RecursiveIteratorIterator Object
(
)
RegexIterator Object
(
    [replacement] => 
)

1 个答案:

答案 0 :(得分:0)

评论并未在这句话中说出全部真相

  

$ Regex将为每个PHP文件包含一个索引数组。

你实际上需要迭代$Regex,因为转储不会给你一个通常的数组

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