100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 使用ob系列函数实现PHP网站页面静态化

使用ob系列函数实现PHP网站页面静态化

时间:2021-09-24 14:21:20

相关推荐

使用ob系列函数实现PHP网站页面静态化

php教程|php手册

php,ob系列函数,静态

php教程-php手册

大话西游手游源码,vscode右边的代码总览,ubuntu 根分区,tomcat7入侵,jpa + sqlite,网页设计在哪接单,苹果cms外链数据库,云服务器硬件,jquery 低版本兼容插件,前端大框架,晨星评级爬虫,php 高级面试题,温州seo推广,springboot依赖排除,p字形标签设计,怎么改网站模板,网页中的分页的模板,笔趣阁模板下载,数据后台模板,jquery 登录页面 下载,学校人力资源管理系统 源码,免费程序源码下载lzw

php页面缓存主要用到的是ob系列函数,如ob_start(),ob_end_flush(),ob_get_contents() ,今天我们来谈谈使用这些函数来实现php网站页面静态化

discuz手机客户端源码,vscode怎么样知乎,ubuntu网络x,tomcat与域名绑定,爬虫的规模,嘉兴php招聘,seo快速提升排名有哪些方法lzw

尖叫体图片生成php源码,ubuntu调出命令窗口,Python京东爬虫意义,php博士,SEO排名函数lzw

将PHP的执行页面预先转换成HTML,是所谓的PHP静态化方法之一。

其他还有模板替换法,opcache等方法。

静态化的作用:

提高网站的响应速度,降低服务器的负载;

用于搜索引擎的SEO;

利用PHP输出buffer直接写成html,定时后台定时扫一遍网站,是比较容易实现的网页静态化。

静态化之前:

<?phpfor($i=0;$i<1000;$i++){ echo "bull

“;

}

?>

静态化:

<?phpob_start();for($i=0;$i<1000;$i++){ echo "bull

“;

}

$str = ob_get_contents();

ob_end_clean();

$fp = fopen(“test.html”,”w”);

fwrite($fp,$str);

fclose($fp);

echo “

success write“;

?>

该段代码就会预先形成一个test.html,说白了其实就是用空间换取时间,像新闻类网站,发布的内容基本上写完是不会变了,比较适合静态化成html。

用户访问的时候就direct到这个html页面上就可以了。

简单的用apache benchmark测试一下效果:

ab.exe -n1000 -c10

两者在90%以上的连接中,至少相差150ms。相对于复杂的php来说,html节约下来的运算量还是不少的。

另附相关函数简介

1、Flush:刷新缓冲区的内容,,输出。

函数格式:flush()

说明:这个函数经常使用,效率很高。

2、ob_start :打开输出缓冲区

函数格式:void ob_start(void)

说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。

3 、ob_get_contents :返回内部缓冲区的内容。

使用方法:string ob_get_contents(void)

说明:这个函数会返回当前缓冲区中的内容,如果输出缓冲区没有激活,则返回 FALSE 。

4、ob_get_length:返回内部缓冲区的长度。

使用方法:int ob_get_length(void)

说明:这个函数会返回当前缓冲区中的长度;和ob_get_contents一样,如果输出缓冲区没有激活。则返回 FALSE。

5、ob_end_flush :发送内部缓冲区的内容到浏览器,并且关闭输出缓冲区。

使用方法:void ob_end_flush(void)

说明:这个函数发送输出缓冲区的内容(如果有的话)。

6、ob_end_clean:删除内部缓冲区的内容,并且关闭内部缓冲区

使用方法:void ob_end_clean(void)

说明:这个函数不会输出内部缓冲区的内容而是把它删除!

7、ob_implicit_flush:打开或关闭绝对刷新

使用方法:void ob_implicit_flush ([int flag])

说明:使用过Perl的人都知道$|=x的意义,这个字符串可以打开/关闭缓冲区,而ob_implicit_flush函数也和那个一样,默认为关闭缓冲区,打开绝对输出后,每个脚本输出都直接发送到浏览器,不再需要调用 flush()。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。