利用PHP怎么实现一个文件缓存类

  介绍

这篇文章给大家介绍利用PHP怎么实现一个文件缓存类,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

PHP中缓存分类<强>数据库缓存,文件缓存和<强>内存缓存,
<强>页面缓存类
代码如下,:

& lt; ? php ,/*包括(,“cache.php",),,,   ,,   $ cache =, new 缓存(30);,,   缓存→美元cacheCheck ();,,   ,,   echo 日期(“Y-m-d  H:我:s");,,   ,,   缓存→美元缓存();*/class  cache  {,,   ,//缓存目录,,   ,var  cacheRoot 美元;,,=,“。/缓存/,,,,   ,//缓存更新时间秒数,0为不缓存,,   ,var  cacheLimitTime 美元;,=,3,,   ,//缓存文件名,,   ,var  cacheFileName 美元;,=,““,,   ,//缓存扩展名,,   ,var  cacheFileExt 美元;,,=,“php",,,   ,,/*,大敌;   *,才能构造函数,,   *,才能int  cacheLimitTime 美元;缓存更新时间,,   ,,*/,   cacheLimitTime 美元,function 缓存(,,),{,,   如果才能(,intval中,cacheLimitTime 美元),),,,   ,,这→美元cacheLimitTime =, cacheLimitTime美元;,,   这个美元才能→cacheFileName =, $ this→getCacheFileName ();,,   ob_start才能();,,   ,},   ,,/*,大敌;   *,才能检查缓存文件是否在设置更新时间之内,,   *,才能返回:如果在更新时间之内则返回文件内容,反之则返回失败,,   ,,*/,   ,function  cacheCheck () {,,   如果才能(,file_exists (, $ this→cacheFileName ),), {,,   ,,cTime 美元;=,$ this→getFileCreateTime (, $ this→cacheFileName );,,   ,,如果(+,cTime 美元,美元这→cacheLimitTime 祝辞,时间(),),{,,   ,,,echo  file_get_contents (, $ this→cacheFileName );,,   ,,,ob_end_flush ();,,   退出,,,,,,   ,,},,   ,,},   return 才能,假的,,,   ,},   ,,/*,大敌;   *,才能缓存文件或者输出静态,,   *,才能string  staticFileName 美元;静态文件名(含相对路径),,   ,,*/,   ,function 缓存(,staticFileName 美元;=,,,,){,,   如果才能(美元,这→cacheFileName ), {,,   ,,cacheContent 美元;=,ob_get_contents ();,,   ,,//echo  cacheContent美元;,,   ,,ob_end_flush ();,,   ,,   ,,如果,staticFileName 美元),{,,   ,,,,这个→美元saveFile (, staticFileName美元,美元cacheContent );,,   ,,},,   ,,   ,,如果,这个→美元cacheLimitTime ),,   ,,,这个→美元saveFile (cacheFileName默认,美元这个环境,cacheContent 美元;);,,   ,,},   ,},   ,,/*,大敌;   *,才能清除缓存文件,,   *,才能string  fileName 美元;指定文件名(含函数)或者所有(全部),,   *,才能返回:清除成功返回真,反之返回false ,   ,,*/,   ,function  clearCache (=, fileName 美元;“all",), {,,   如果才能(,fileName 美元;!=,“all",), {,,   fileName 美元,,,=,$ this→cacheRoot 只strtoupper (md5(文件名)美元)干净干净。$ this→cacheFileExt;,,   ,,如果,file_exists (, fileName 美元),),{,,   ,,,return  @unlink (, fileName 美元;);,,   ,,}else  return 假,,,   ,,},   if 才能;(,is_dir (, $ this→cacheRoot ),), {,,   ,,if  (, dir 美元;=,@opendir (, $ this→cacheRoot ),), {,,   ,,,while  (, file 美元;=,@readdir (, dir 美元),),{,,   ,,,,check 美元;=,is_dir (, file 美元;);,,   ,,,,if  (, ! check 美元,),,   ,,,,@unlink (, $ this→cacheRoot 只file 美元;);,,   ,,,},,   ,,,@closedir (, dir 美元;);,,   ,,,return ,真的,,,   其他,,}{,,   ,,,return 假,,,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

利用PHP怎么实现一个文件缓存类