我有一个存储 html 文件的缓存文件夹。它们会在需要时被覆盖,但很多时候,很少使用的页面也会缓存在其中,最终会占用空间(5 周后,驱动器已满,有超过 270 万个缓存文件)。
循环遍历包含数十万个文件的目录并删除超过 1 天的文件的最佳方法是什么?
我认为您可以通过使用 readdir 循环遍历目录并根据时间戳删除来解决此问题:
<?php
$path = '/path/to/files/';
if ($handle = opendir($path)) {
while (false !== ($file = readdir($handle))) {
$filelastmodified = filemtime($path . $file);
//24 hours in a day * 3600 seconds per hour
if((time() - $filelastmodified) > 24*3600)
{
unlink($path . $file);
}
}
closedir($handle);
}
?>
The if((time() - $filelastmodified) > 24*3600)
将选择早于 24 小时的文件(24 小时乘以每小时 3600 秒)。如果您需要几天,则对于一周以上的文件,它应该读取例如 7*24*3600。
另外,请注意filemtime
返回文件的最后修改时间,而不是创建日期。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)