PHP输出控制

默认的PHP的echo、print之类的输出会被缓存,当缓存达到特定的大小或脚本执行结束,或强行刷新缓冲区才会发送到浏览器客户端。

php.inioutputing_buffer字段默认是4096,表示缓存的大小,如果大于该值则会像浏览器客户端输出。但是我发现该值不管怎么改( ini_get('outputing_buffer')值始终为0),都不会影响输出,即不会有缓存,这里就不去研究为什么了,这里主要想说的是ob相关的函数。

有时我们需要对输出进行严格控制,比如我要输出100k的数据,而且是一次性发送到客户端,这里我们需要用到ob相关的函数。

php会在脚本执行结束时自动关闭缓存,所以可以不用显示调用obend。但良好的风格不应该省略这些,而且obstart应该是和这些obend_一一对应的.

如下代码将在for循环结束后一次性输出所有echo:

如下代码将在循环时,循环一次输出一次:

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: