PHP递归目录迭代器 – 忽略某些文件.
发布时间:2020-05-25 08:34:41 所属栏目:PHP 来源:互联网
导读:我有一个递归目录迭代器来从目录中选择文件. SKIP_DOTS允许我忽略’.’和’..’元素,但我希望能够忽略’__MACOSX’目录和另一个其他隐藏文件,如’.cache.php’ $iterator = new RecursiveDirectoryIterator($directory);$iterator-setFlags(RecursiveDirector
|
我有一个递归目录迭代器来从目录中选择文件. SKIP_DOTS允许我忽略’.’和’..’元素,但我希望能够忽略’__MACOSX’目录和另一个其他隐藏文件,如’.cache.php’ $iterator = new RecursiveDirectoryIterator($directory); $iterator->setFlags(RecursiveDirectoryIterator::SKIP_DOTS); $all_files = new RecursiveIteratorIterator($iterator); 还有其他答案here和here,但只是想知道是否有更清洁的方式? 我希望PHP Manual – FilesystemIterator SetFlags会有什么东西,但似乎没有. 感谢@Sven和PHP Docs:$iterator = new RecursiveDirectoryIterator($directory); $iterator->setFlags(RecursiveDirectoryIterator::SKIP_DOTS); $filter = new MyRecursiveFilterIterator($iterator); $all_files = new RecursiveIteratorIterator($filter,RecursiveIteratorIterator::SELF_FIRST); 然后延长RecursiveFilterIterator class MyRecursiveFilterIterator extends RecursiveFilterIterator {
public static $FILTERS = array(
'__MACOSX',);
public function accept() {
return !in_array(
$this->current()->getFilename(),self::$FILTERS,true
);
}
}
根据评论In the PHP Manual (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
