龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

PHP 缓存类

时间:2014-06-27 15:18来源:网络整理 作者:网络 点击:
分享到:
PHP 缓存类 **[PHP]代码**```{.php}lt;?php define(#39;CACHE_ROOT#39;, dirname(__FILE__).#39;/cache#39;); //缓存存放目录 define(#39;CACHE_TIME#39;, 1800);//缓存时间 单位秒 define(#39;CACHE_FIX#39;,#39;.

[PHP]代码

<?php
     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)<CACHE_TIME){ 
                 $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); 
       }
?>
精彩图集

赞助商链接