PHP 缓存类
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-07-25 09:09:58
-
define('CACHE_ROOT', dirname(__FILE__).'/cache'); //缓存存放目录
- define('CACHE_TIME', 1800);//缓存时间 单位秒
- define('CACHE_FIX','.html');
- $CacheName=md5($_SERVER['REQUEST_URI']).CACHE_FIX; //缓存文件名
- $CacheDir=CACHE_ROOT.'/'.substr($CacheName,0,1);//缓存文件存放目录
- $CacheUrl=$CacheDir.'/'.$CacheName;//缓存文件的完整路径
- //GET方式请求才缓存,POST之后一般都希望看到最新的结果
- if($_SERVER['REQUEST_METHOD']=='GET'){
- //如果缓存文件存在,并且没有过期,就把它读出来。
- if(file_exists($CacheName) && time()-filemtime($CacheName) $fp=fopen($CacheName,'rb');
- fpassthru($fp);
- fclose($fp);
- exit;
- }
- //判断文件夹是否存在,不存在则创建
- elseif(!file_exists($CacheDir)){
- if(!file_exists(CACHE_ROOT)){
- mkdir(CACHE_ROOT,0777);
- chmod(CACHE_ROOT,0777);
- }
- mkdir($CacheDir,0777);
- chmod($CacheDir,0777);
- }
- //回调函数,当程序结束时自动调用此函数
- function AutoCache($contents){
- global $CacheUrl;
- $fp=fopen($CacheUrl,'wb');
- fwrite($fp,$contents);
- fclose($fp);
- chmod($CacheUrl,0777);
- //生成新缓存的同时,自动删除所有的老缓存,以节约空间,可忽略。
- //DelOldCache();
- return $contents;
- }
- function DelOldCache(){
- chdir(CACHE_ROOT);
- foreach (glob("*/*".CACHE_FIX) as $file){
- if(time()-filemtime($file)>CACHE_TIME)unlink($file);
- }
- }
- //回调函数 auto_cache
- ob_start('AutoCache');
- }else{
- //不是GET的请求就删除缓存文件。
- if(file_exists($CacheUrl))unlink($CacheUrl);
- }
- ?>
复制代码
|
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31