AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > PHP编程

php文件缓存实例代码

51自学网 2016-09-17 http://www.wanshiok.com
缓存在实际使用当中应用很广泛,可以减轻对服务器数据库教程的访问,提高运行速度。目前很多cms内容管理系统中频繁使用缓存机制来提高系统运行的效率
cache.php 代码如下:

<?php  /*用户需要事先定义的常量:_cachepath_        模板缓存路径_cacheenable_      自动缓存机制是否开启,未定义或为空,表示关闭自动缓存机制_recachetime_      自动重新缓存间隔时间,单位为秒,未定义或为空,表示关闭自动重新缓存*/   class cache {   var $cachefile;  var $cachefilevar;   function cache() {      //生成当前页的cache组文件名 $this->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);          //如果设置了缓存更新间隔时间 _recachetime_          if (_recachetime_+0>0) {              //更新当前页cache的最后更新时间              $file=_cachepath_."/".$this->cachefilevar;              $fp=@fopen($file,'w');              if (!@fwrite($fp,time())) {echo "cache目录无法写入";exit;}              @fclose($fp);          }      }  }   }  ?> 


说明
:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。
 
上一篇:PHP如何读取xml文件?php读取xml文档例子  下一篇:php无刷新上传文件代码