php如何根据文件的创建日期在目录中删除文件?
问题描述:
我有一个存储html文件的缓存文件夹。它们在需要时会被覆盖,但是很多时候,很少使用(几乎不用)的页面也会在那里存储。差不多一个月,硬盘已存了270万个缓存html文件)。
那么问题来了,php循环访问包含数十万个文件的目录并删除早于1天的html文件的最好的方法是什么?
回答:
php中可以通过使用readdir函数遍历目录并根据时间戳进行删除缓存的html来解决这个问题:<?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); }?>
在if((time() - $filelastmodified) >
24*3600)将选择的文件超过24小时以上(每小时3600秒)。如果需要几天,比如一周的时间是这样的: 7 * 24 * 3600。
另外要注意,filemtime返回文件的最后修改时间,而不是创建日期。