Php扩展RecursiveFilterIterator,显示和忽略文件

时间:2016-05-23 03:49:33

标签: php iterator

我使用的是:

class MyRecursiveFilterIterator extends RecursiveFilterIterator {

    public static $FILTERS = array(
        '.htaccess',
        '.html',
    );

    public function accept() {
        return !in_array(
            $this->current()->getFilename(),
            self::$FILTERS,
            true
        );
    }

}

$iterator = new RecursiveDirectoryIterator($dir);
$iterator->setFlags(RecursiveDirectoryIterator::SKIP_DOTS);
$filter = new MyRecursiveFilterIterator($iterator);
$all_files  = new RecursiveIteratorIterator($filter,RecursiveIteratorIterator::SELF_FIRST);

列出指定$ dir路径中的所有文件和文件夹。

MyRecursiveFilterIterator扩展默认的RecursiveFilterIterator并排除某些文件扩展名,如.htaccess和html。现在我想添加只显示某些文件类型的功能,如.jpg,.png以及保留被排除的文件类型。

1 个答案:

答案 0 :(得分:1)

<强>您好,

我只参考你问题的第一部分,即:“......现在我想添加只显示某些文件类型的功能,例如.jpg,.png ......”

因此,如果您想要过滤某些文件类型,可以使用RegexIterator,原则上会显示.png文件。

app.yaml

......等等。当然,这只是一个粗略的解决方案,只能说明原理。

祝你好运 Axel Arnold Bangert - Herzogenrath 2016

Test