PHP的OB缓存

OB缓存全名为:output_buffer,即“输出缓存”;在PHP中要实现页面表太化,它是非常有用的。

开启OB缓存的方式有以下两种两种

1、配置php.ini 文件 output_buffering = 4096(缓存大小为4096个字节)或output_buffering =on

2、直接在程序中  ob_start();

 

其实一次请求中存在三种缓存,分别是浏览器缓存、程序缓存和OB缓存。我们可以看看下面的代码。

 

<?php
echo "test1";
header("content-type:text/html;charset=utf-8");
echo "test2";

运行代码,会发现在OB缓存关闭的情况下,它会报错,而开启OB缓存后它就能正常运行。为什么会出现这种情况呢,我们分情况分析。

 

在OB缓存关闭的情况下:这段代码的执行过程是先将“test1”放在程序缓存中,然后再将“content-type:text/html;charset=utf-8”放到程序缓存中,再将“test2”放到程序缓存中。P 这时的结果为:test1; content-type:text/html;charset=utf-8;test2,最后将结果传到浏览器缓,很显然,这样的结果输出出来是有错误的。

 

在OB缓存开启的情况下:这段程序的执行过程就变成了这样;先将“test1”放在OB缓存,再将“content-type:text/html;charset=utf-8”放到程序缓存中,再将“test2”放到OB缓存中,程序执行完后,将OB缓存中的内容加入到程序缓存中,而这时的结果为:content-type:text/html;charset=utf-8;test1;test2,最后将结果传到浏览器缓存,这样的结果是正确的。

 

总结:OB缓存开启时,它会把输出的内容先放到OB缓存中,执行到最后放到程序缓存中,header的内容直接放在程序缓存中。OB缓存未开启,则按顺序把内容放到程序缓存中。

 

OB缓存常用函数函数简解

ob_start()         开启OB缓存

ob_get_contents();          得到OB缓存中的内容

ob_clean()                  清除OB缓存中的内容

ob_end_clean()        清除OB缓存中的内容并关闭OB缓存

ob_flush()                   将OB缓存中的内容刷新(剪切)到程序缓存中

ob_end_flush()         将OB缓存中的内容刷新(剪切)到程序缓存中,并关闭OB缓存

flush()                          将程序缓存中的内容刷新(剪切)到浏览器缓存。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值