【发布时间】:2016-12-01 04:15:19
【问题描述】:
奇怪的是,当我尝试用谷歌搜索这个问题时,输入类似于这个问题的查询没有任何有用的弹出,甚至没有关闭。
现在我不是寻找一种解决方案,您可以扫描或打开目录并逐个文件读取其内容。对于那些寻找这种不可靠循环的人,请检查这些功能:scandir(...) 一次加载所有内容然后循环它,opendir(...)、readdir(...)、stat(...)['mtime'] 逐个文件执行,并可能对完成的数量设置一些限制,并使其至少更安全一些...
我想知道的是 PHP 中是否有一些东西可以检查/测试,以某种简单的方式,一个文件夹/目录是否包含早于 [sometime] 的文件,或者甚至有多少这样的文件没有任何类型的“手动”通关?
PS:我见过一些shell_execs,但这似乎不太跨操作系统...
【问题讨论】:
-
该手册包含来自“dds dot nl 的偏执狂”的评论,可能与您的需求相关:php.net/manual/en/function.filemtime.php
-
@markdwhite 真的很有趣,但这与我想要的几乎相反 - 最新的文件更改,而不是最旧的 - 这对我来说已经足够了 :-)
-
@jave.web 因此,您正在寻找一个标准的独立于平台的 PHP 命令,该命令将以一种奇特的方式扫描目录,而无需您手动进行,也无需循环;因此,如果在某个日期之前至少创建了一个文件或此类文件的“数量”,它应该返回“true”或“false”?不,没有这样的功能。您的“跨操作系统”限制导致唯一的答案“循环遍历文件”。您可以在此处查看示例:stackoverflow.com/a/2205784/4621324
-
如果您不想在代码中看到显式循环,这是另一种方法:stackoverflow.com/a/3298787/4621324
-
@Axalix 好的,感谢您提供的信息,无论如何,这不是关于显式循环,而是不必遍历所有文件,可能是 maaaany,文件。是否至少有适用于 Unix、Linux、Windows 的跨操作系统解决方案? (适用于所有生产使用 Windows 的命令,另一个适用于所有 Linux 的命令......我想你明白了吗?)
标签: php performance file directory last-modified