php页面缓存ob系列函数的相关介绍

php中文网
发布: 2016-07-25 09:08:08
原创
1108人浏览过
  1. function page_init()

  2. {
  3. $url = $_server['request_uri'];//子url,该参数一般是唯一的
  4. $pageid = md5($url);
  5. $dir = str_replace('/','_',substr($_server['script_name'],1,-4));
  6. //目录命名方式,如exp_index
  7. if(!file_exists($pd = page_path.$dir.'/'))@mkdir($pd,0777) or die("$pd目录创建失败");
  8. //如cache/page/exp_index/
  9. define('page_file',$pd.$pageid.'.html');
  10.   //如cache/page/exp_index/cc8ef22b405566745ed21305dd248f0e.html
  11. $contents = file_get_contents(page_file);//读出
  12. if($contents && substr($contents, 13, 10) > time() )//对应page_cache()函数中加上的自定义头部

  13. {
  14. echo substr($contents, 27);
  15. exit(0);
  16. }
  17. return true;
  18. }
  19. ?>
复制代码

二、页面缓存函数,这里使用到一个技巧:在缓存文件的内容中加上一个头部信息--过期时间,所以每次只需要对头部中的过期时间和当前时间进行比较(在page_init()函数中进行)就能判断缓存是否过期了。

  1. function page_cache($ttl = 0)
  2. {
  3. $ttl = $ttl ? $ttl : PAGE_TTL;//缓存时间,默认3600s
  4. $contents = ob_get_contents();//从缓存中获取内容
  5. $contents = "\n".$contents;
  6.   //加上自定义头部:过期时间=生成时间+缓存时间
  7. file_put_contents(PAGE_FILE, $contents);//写入缓存文件中
  8. ob_end_flush();//释放缓存
  9. }
  10. ?>
复制代码

三、函数使用,注意这两个函数有先后执行顺序,还有别忘了ob_start()。

  1. page_init();//页面缓存初始化

  2. ob_start();//开启缓存
  3. ...//代码段

    千面数字人
    千面数字人

    千面 Avatar 系列:音频转换让静图随声动起来,动作模仿让动漫复刻真人动作,操作简单,满足多元创意需求。

    千面数字人 156
    查看详情 千面数字人
  4. page_cache(60);//一般是最后一行

  5. ?>

    立即学习PHP免费学习笔记(深入)”;

复制代码


PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号