output_buffer函数

首先:echo/print/include进来的html(php中任何可以显示在浏览器的东西!) =>  php_buffer => tcp_buffer =>browser
所以,输出是先输出到php_buffer,再到tcp_buffer,最后到browser。
 
php.ini里可以设置output_buffer(php_buffer)开启,output_buffer = 4096,如果设置为0则表示关闭php_buffer。
 
介绍函数:
1、ob_start():就算不写这个函数,php_buffer也是开启的。只不过写这个有好处:1、可以写回调。2、默认脚本执行完才把php_buffer的东西冲出去。3、无大小限制。所以还是建议写。
 
2、ob_flush():提醒php_buffer把缓冲区的东西冲出去,冲到tcp_buffer那里,那么php_buffer就没东西了。本来是脚本执行完才冲出去的,现在可以随时冲出去。
 
3、ob_flush_end():让php_buffer把缓冲区的东西冲出去,并且关闭缓冲区。关闭了缓冲区还是可以echo,为什么?因为直接输入到tcp_buffer那里了。
 
4、ob_clean():把缓冲区的内容清空。缓冲区的东西清空了,再没有东西冲到tcp_buffer,所以没输出的。
 
5、ob_clean_end():把缓冲区内容清空,并且把缓冲区关闭。
 
6、ob_get_contents():把缓冲区的内容拷贝一份到变量那里。静态化页面就靠这里了。
 
7、ob_get_clean():这个就是ob_get_contents()+ob_end_clean();拷贝到变量,清空,关闭。
 
8、ob_get_flush():跟ob_get_clean()效果一样。
 
注意:ob_flush对include进来的html输出不支持。bug?

posted on 2013-03-13 13:50  bgwan  阅读(353)  评论(0编辑  收藏  举报

导航