php如何根据文件的创建日期在目录中删除文件?
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返回文件的最后修改时间,而不是创建日期。