缓存在实际使用当中应用很广泛,可以减轻对服务器数据库教程的访问,提高运行速度,目前很多cms内容管理系统中频繁使用缓存机制来提高系统运行的效率.
cache.php代码如下:
cachefilevar 及文件名 $this->cachefile       //动态页的参数不同对应的cache文件也不同,但是每一个动态页的所有cache文件都有相同的文件名,只是扩展名不同       $s=array(.,/);$r=array(_,);       $this->cachefilevar=str_replace($s,$r,$_server[script_name])._.$_get[_actionvar_];      $this->cachefile=$this->cachefilevar...md5($_server[request_uri]);   }   //删除当前页/模块的缓存   function delete() {       //删除当前页的缓存       $d = dir(_cachepath_);       $strlen=strlen($this->cachefilevar);       //返回当前页的所有cache文件组       while (false !== ($entry = $d->read())) {           if (substr($entry,0,$strlen)==$this->cachefilevar) {               if (!unlink(_cachepath_./.$entry)) {echo cache目录无法写入;exit;}           }       }   }   //判断是否已cache过,以及是否需要cache   function check() {       //如果设置了缓存更新间隔时间 _recachetime_       if (_recachetime_+0>0)        {           //返回当前页cache的最后更新时间           $var=@file(_cachepath_./.$this->cachefilevar);$var=$var[0];           //如果更新时间超出更新间隔时间则删除cache文件           if (time()-$var>_recachetime_) {               $this->delete();$ischage=true;           }       }       //返回当前页的cache       $file=_cachepath_./.$this->cachefile;       //判断当前页cache是否存在 且 cache功能是否开启       return (file_exists($file) and _cacheenable_ and !$ischange);   }   //读取cache   function read() {   //返回当前页的cache   $file=_cachepath_./.$this->cachefile;   //读取cache文件的内容   if (_cacheenable_) return readfile($file);   else return false;   }   //生成cache   function write($output) {       //返回当前页的cache       $file=_cachepath_./.$this->cachefile;       //如果cache功能开启       if (_cacheenable_) {               //把输出的内容写入cache文件               $fp=@fopen($file,'w');               if (!@fputs($fp,$output)) {echo 模板cache写入失败;exit;}               @fclose($fp);  //开源代码phpfensi.com             //如果设置了缓存更新间隔时间 _recachetime_               if (_recachetime_+0>0) {                   //更新当前页cache的最后更新时间                   $file=_cachepath_./.$this->cachefilevar;                   $fp=@fopen($file,'w');                   if (!@fwrite($fp,time())) {echo cache目录无法写入;exit;}                   @fclose($fp);               }           }       }   }   ?>
使用过程,php代码如下:
check()) {       $template=$cache->read();       }else {               ob_start();               ob_implicit_flush(0);   ?>   // 页面内容。。。。   write($template);       }   ?>
   
 
   