php页面缓存方法小结
本文实例总结了php页面缓存方法。分享给大家供大家参考。具体分析如下: 在php页面缓存主要用到的是ob系列函数,如ob_start(),ob_end_flush(),ob_get_contents(),但是更高级的缓存是不使用这些函数的,本文最后会举一个实例加以说明. 先来看看缓存常用的ob系列函数: ob_start():页面缓存开始的标志,此函数一下的内容直至ob_end_flush()或者ob_end_clean()都保存在页面缓存中;ob_get_contents():用来获取页面缓存中的内容,获取到以后呢,我们就可以想怎么处理这些内容都行了,过滤字段啦,匹配内容啦,都可以~~~ob_end_flush():表示页面缓存结束,并且经我验证,缓存的内容将输出到当前页面上,也就是可以显示缓存内容.用此三个php函数,就可以实现强大的功能,如果数据库查询量较大,可以用cache来解决这个问题. 下面是编码部分. 1.初始化函数,一般是设置页面缓存路径、缓存文件命名格式等,可按个人喜好自定义,这里用到的识别ID是经加密的$_SERVER[REQUEST_URI]参数,这个函数中最后还有一个if判断,若未过缓存期,则加载缓存文件,否则加载源文件,代码如下: 代码如下: if($contents && substr($contents,13,10) > time() )//对应page_cache()函数中加上的自定义头部 { echo substr($contents,27); exit(0); } return true; } 2.页面缓存函数,这里使用到一个技巧,在缓存文件的内容中加上一个头部信息--过期时间,所以每次只需要对头部中的过期时间和当前时间进行比较,在page_init()函数中进行,就能判断缓存是否过期了,代码如下: <div class="codetitle"><a style="CURSOR: pointer" data="60808" class="copybut" id="copybut60808" onclick="doCopy('code60808')"> 代码如下:<div class="codebody" id="code60808">function page_cache($ttl = 0) { $ttl = $ttl ? $ttl : PAGE_TTL;//缓存时间,默认3600s $contents = ob_get_contents();//从缓存中获取内容 $contents = "n".$contents; //加上自定义头部:过期时间=生成时间+缓存时间 file_put_contents(PAGE_FILE,$contents);//写入缓存文件中 ob_end_flush();//释放缓存 } 3.函数使用,注意这两个函数有先后执行顺序,还有别忘了ob_start(),代码如下: <div class="codetitle"><a style="CURSOR: pointer" data="38782" class="copybut" id="copybut38782" onclick="doCopy('code38782')"> 代码如下:<div class="codebody" id="code38782"><?php page_init();//页面缓存初始化 ob_start();//开启缓存 ...//代码段 page_cache(60);//一般是最后一行 ?> function cache_start($_time,$dir) function cache_end($dir) cache_start($_time,$dir);
class Esj_Cache{ public function __construct($cache_foldername,$cacher_time=100) public function read_cache() }catch(Exception $e){ //测试缓存文件夹是否存在 //建立一个新的文件夹 //读取缓存文件 } } //返回文件的名字 //建立缓存文件 // 取得缓存中的所有文件 //删除缓存中的所有文件 } ?> 希望本文所述对大家的php程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |