php页面缓存实现方法总结

php页面缓存实现方法总结

ID:39467258

大小:46.50 KB

页数:7页

时间:2019-07-04

php页面缓存实现方法总结_第1页
php页面缓存实现方法总结_第2页
php页面缓存实现方法总结_第3页
php页面缓存实现方法总结_第4页
php页面缓存实现方法总结_第5页
资源描述:

《php页面缓存实现方法总结》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、php页面缓存实现方法总结在php页面缓存主要用到的是ob系列函数,如ob_start(),ob_end_flush(),ob_get_contents(),但是更高级的缓存是不使用这些函数的,本文章最后一个实现就有讲到,大家可参考一下。ob_start():页面缓存开始的标志,此函数一下的内容直至ob_end_flush()或者ob_end_clean()都保存在页面缓存中;ob_get_contents():用来获取页面缓存中的内容,获取到以后呢,我们就可以想怎么处理这些内容都行了,过滤字段啦,匹配内容啦,都可以~~~:)ob_e

2、nd_flush():表示页面缓存结束。并且经我验证,缓存的内容将输出到当前页面上,也就是可以显示缓存内容。用此三个php函数,就可以实现强大的功能。如果数据库查询量较大,可以用cache来解决这个问题。下面是编码部分。1.初始化函数,一般是设置页面缓存路径、缓存文件命名格式等,可按个人喜好自定义。这里用到的识别ID是经加密的$_SERVER[REQUEST_URI]参数。这个函数中最后还有一个if判断:若未过缓存期,则加载缓存文件,否则加载源文件。代码如下复制代码functionpage_init(){$url=$_SERVER['

3、REQUEST_URI'];//子url,该参数一般是唯一的$pageid=md5($url);$dir=str_replace('/','_',substr($_SERVER['SCRIPT_NAME'],1,-4));//目录命名方式,如exp_indexif(!file_exists($pd=PAGE_PATH.$dir.'/'))@mkdir($pd,0777)ordie("$pd目录创建失败");//如cache/page/exp_index/define('PAGE_FILE',$pd.$pageid.'.html'); 

4、 //如cache/page/exp_index/cc8ef22b405566745ed21305dd248f0e.html$contents=file_get_contents(PAGE_FILE);//读出if($contents&&substr($contents,13,10)>time())//对应page_cache()函数中加上的自定义头部{echosubstr($contents,27);exit(0);}returntrue;}2.页面缓存函数,这里使用到一个技巧:在缓存文件的内容中加上一个头部信息--过期时间,所以每

5、次只需要对头部中的过期时间和当前时间进行比较(在page_init()函数中进行)就能判断缓存是否过期了。代码如下复制代码functionpage_cache($ttl=0){$ttl=$ttl?$ttl:PAGE_TTL;//缓存时间,默认3600s$contents=ob_get_contents();//从缓存中获取内容$contents="n".$contents;  //加上自定义头部:过期时间=生成时间+缓存时间file_put_contents(PAGE_

6、FILE,$contents);//写入缓存文件中ob_end_flush();//释放缓存} 3.函数使用,注意这两个函数有先后执行顺序,还有别忘了ob_start()代码如下复制代码例2下面做个示例来说明PHP页面缓存技术:代码如下复制代码

7、=$dir.'/'.sha1($_SERVER['REQUEST_URI']).'.html';$cachetime=$_time;ob_start();if(file_exists($cachefile)&&(time()-filemtime($cachefile)<$cachetime)){include($cachefile);ob_end_flush();exit;}}functioncache_end($dir){$cachefile=$dir.'/'.sha1($_SERVER['REQUEST_URI']).'.html

8、';$fp=fopen($cachefile,'w');fwrite($fp,ob_get_contents());fclose($fp);ob_end_flush();}cache_start($_time,$dir)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。