【发布时间】:2019-12-06 08:42:27
【问题描述】:
我有一个目录,里面有一堆文件。我可以使用 DirectoryIterator 获取所有文件。
$files = new DirectoryIterator('/path/to/directory/');
除此之外,我还可以使用 RegexIterator 和 LimitIterator 过滤返回的文件。
$regex_iterator = new RegexIterator($files, '/my_regex_here/');
$limit_iterator = new LimitIterator($regex_iterator, $offset, $limit);
这很好用,因为它只返回我需要的文件。有没有一种方法可以只返回在某个日期范围内创建的文件,类似于使用 RegexIterator (通过匹配文件名上的正则表达式进行过滤)?类似于 SQL 查询:
SELECT * FROM table WHERE created_date BETWEEN 'first_date' AND 'second_date';
我可以循环 $limit_iterator 中的所有文件并检查文件的创建时间,但我想避免从迭代器类返回不必要的文件,因为目录中可能有很多文件。
为了分页,我还需要基于这些过滤器的文件总数(在使用 LimitIterator 之前),以便我可以根据需要拥有“下一个”和“上一个”页面。
是否可以按照我的要求去做?
【问题讨论】:
标签: php date filter directory iterator