【问题标题】:Recursive file structure got by RecursiveDirecrtoryIterator [duplicate]RecursiveDirecrtoryIterator 得到的递归文件结构[重复]
【发布时间】:2015-10-10 14:30:05
【问题描述】:

我正在尝试使用 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]
公共'替换'=> null

我在这里做错了什么?把我难住了……

注意
我的代码来自:here

【问题讨论】:

  • @unixarmy,我不会说这是重复的,因为该问题的 OP 出现运行时错误,而我没有,我正在通过,而不是信息跨度>
  • 是的,$regex 是一个“迭代器”;您需要对其进行迭代(例如使用foreach($regex as $file))以获取各个值
  • @MarkBaker,我做到了,而且效果很好,这是我犯的愚蠢错误,您介意将其作为答案,以便我尽快标记为正确吗?

标签: php recursion iterator filesystems


【解决方案1】:

$regex 是一个“迭代器”,您需要对其进行迭代(例如使用 foreach($regex as $file))以获取各个值。

您需要迭代/循环该对象 - 与迭代数据库结果集的方式相同 - 以获取各个值:

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

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

【讨论】:

    猜你喜欢
    • 2012-11-10
    • 2017-05-20
    • 2012-06-17
    • 1970-01-01
    • 2021-03-17
    • 2012-10-28
    • 2010-12-11
    • 2018-09-25
    • 2015-03-03
    相关资源
    最近更新 更多