|
CI自带的页面缓存,每访问一个URL,都会自动生成一个页面缓存文件,但生成的文件会永远存在,不会自动删除,时间长了,缓存文件会越来越多,严重的占用了空间资源和消耗服务器性能,更为别人提供了共计入口,在这里给出一个删除已过期的缓存文件,可以配合服务器计划任务每隔多长时间访问一次,即可自动删除已过期的缓存文件
PHP复制代码
/**
* 删除已过期缓存文件
*
*/
public function delCacheFile ()
{
//打开缓存目录句柄
$handle = opendir('application/cache');
if($handle)
{
//遍历目录里的文件,逐个判断其有效日期,若当前时间已超出其有效日期,则删除该文件
while(false !== ($file = readdir($handle)))
{
//CI框架的页面文件缓存为MD5加密的32个字符组成的文件名
//在这里我们建的判断下文件名长度是否为32,后面还会具体判
//断该文件是否为CI框架的页面文件缓存
if(strlen($file) == 32)
{
//CI框架的页面缓存文件由类似这样的代码开头:1383531993TS--->
//读取文件前10个字符,该字符串为一时间戳,如:1383530515
$filename = "application/cache/{$file}";
$fHandle = fopen($filename, "r");
$contents = fread($fHandle, 10);
fclose($fHandle);
//判断该时间戳是否为数字字符串,并判断是否还在有效期内
//若但前时间已超出其有效期,则删除该文件
if(is_numeric($contents) && (time() > $contents))
{
@unlink($filename);
}
}
}
//关闭目录
closedir($handle);
}
}
复制代码
|
评分
-
查看全部评分
|