PHP 递归迭代器


PHP recursive Iterator

我需要递归遍历某个目录并列出其中的所有文件 我在PHP网站上找到了一个例子,但是经过进一步搜索,我无法找到解决问题的方法。问题是它打印出整个路径,但我只想回显出文件的第一个包含文件夹。因此,例如,现在我得到以下输出:

/var/www/example.com/public_html/images/6.Blah/_Original/DSC_0174.jpg

但我希望它能呼应:

_Original/DSC_0174.jpg

/_Original/DSC_0174.jpg

这是我正在使用的代码:

<?php
$path = realpath('/etc');
$objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::SELF_FIRST);
foreach($objects as $name => $object){
    echo "$name'n";
}
?>

这是一个格式问题,您可以通过许多不同的方式处理它。一种方法是将字符串拆分为一个数组并获取最后两个元素。

foreach($objects as $name => $object){
    $pieces = explode("/",$name);
    $length = count($pieces);
    $result = $pieces[$length-2]."/".$pieces[$length-1];
}