使用ob系列函数实现PHP网站页面静态化
php  /  管理员 发布于 7年前   182
将PHP的执行页面预先转换成HTML,是所谓的PHP静态化方法之一。 其他还有模板替换法,opcache等方法。 静态化的作用: 提高网站的响应速度,降低服务器的负载; 静态化之前: 静态化: 该段代码就会预先形成一个test.html,说白了其实就是用空间换取时间,像新闻类网站,发布的内容基本上写完是不会变了,比较适合静态化成html。 用户访问的时候就direct到这个html页面上就可以了。 简单的用apache benchmark测试一下效果: ab.exe -n1000 -c10 两者在90%以上的连接中,至少相差150ms。相对于复杂的php来说,html节约下来的运算量还是不少的。 另附相关函数简介 2、ob_start :打开输出缓冲区 3 、ob_get_contents :返回内部缓冲区的内容。 4、ob_get_length:返回内部缓冲区的长度。 5、ob_end_flush :发送内部缓冲区的内容到浏览器,并且关闭输出缓冲区。 6、ob_end_clean:删除内部缓冲区的内容,并且关闭内部缓冲区 7、ob_implicit_flush:打开或关闭绝对刷新
用于搜索引擎的SEO;
利用PHP输出buffer直接写成html,定时后台定时扫一遍网站,是比较容易实现的网页静态化。";}?>
";}$str = ob_get_contents();ob_end_clean();$fp = fopen("test.html","w");fwrite($fp,$str);fclose($fp);echo "success write";?>
1、Flush:刷新缓冲区的内容,输出。
函数格式:flush()
说明:这个函数经常使用,效率很高。
函数格式:void ob_start(void)
说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。
使用方法:string ob_get_contents(void)
说明:这个函数会返回当前缓冲区中的内容,如果输出缓冲区没有激活,则返回 FALSE 。
使用方法:int ob_get_length(void)
说明:这个函数会返回当前缓冲区中的长度;和ob_get_contents一样,如果输出缓冲区没有激活。则返回 FALSE。
使用方法:void ob_end_flush(void)
说明:这个函数发送输出缓冲区的内容(如果有的话)。
使用方法:void ob_end_clean(void)
说明:这个函数不会输出内部缓冲区的内容而是把它删除!
使用方法:void ob_implicit_flush ([int flag])
说明:使用过Perl的人都知道$|=x的意义,这个字符串可以打开/关闭缓冲区,而ob_implicit_flush函数也和那个一样,默认为关闭缓冲区,打开绝对输出后,每个脚本输出都直接发送到浏览器,不再需要调用 flush()。您可能感兴趣的文章:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号