PHP - 如何测试/检查目录/文件夹是否包含旧文件/文件?

时间:2016-12-01 04:15:19

标签: php performance file directory last-modified

奇怪的是,当我试图谷歌这个问题输入类似于这个问题的查询时,没有任何有用的东西弹出,甚至没有关闭。

现在我正在寻找一个扫描或打开目录的解决方案,并逐个文件读取其内容。对于那些寻找这种不可靠循环的人,请查看这些函数:scandir(...)一次加载所有内容然后循环播放,opendir(...)readdir(...)stat(...)['mtime']逐个文件执行,并可能设置一些限制并使它至少更安全...

我想知道的是,PHP中是否有某些东西能够以某种简单的方式检查/测试文件夹/目录是否包含早于[某个时间]的文件,或者甚至有多少这样的文件没有任何类型的"手册"去通?

PS:我已经看过一些shell_exec,但这似乎并不是跨OS的......

2 个答案:

答案 0 :(得分:1)

显然没有内置函数可以做到这一点,因为这是太具体了。你必须以某种方式自己做,就像你喜欢的那些shell函数一样。

编写一个执行此操作的函数,以便您可以在需要的地方使用它。自然而然,PHP提供了许多功能,使整个事情变得更小,并且可能更快。例如,你可以这样做:

function folder_has_older_file($folder, $time)
{
    return count(array_filter(array_map('filemtime', glob("$folder/*")), function ($a) use ($time) { return $a < $time; })) > 0;
}

答案 1 :(得分:0)

您可以使用filectime(path)filemtime(path)功能检查文件或文件夹中的创建时间。它将返回unixtime,然后您可以与某个时间进行比较