php ob_start及其相关方法详解

php函数中,有一组以ob_开头的函数,被称为Output Control函数,通过设置缓冲区用来控制数据的输出,其中ob_start为开启缓冲区。当用户开启了缓冲区,所有将要输出到页面的信息将先被放置在缓冲区内,直到你用 flush 或者 ob_end_flush 才会输出到页面上。

不过对使用 header() 或 setcookie() 发送的文件头信息不会被写入缓冲区,对header()有多了解就知道,在使用header函数之前,页面是不能有输出哪怕是空格和换行也不行,否则就会报“Header had all ready send by”的错误信息了。当时当我们在页面最开始开启了缓冲区(调用ob_start方法),那我们输出的内容将被缓存在缓存内,这样在调用header方法时将不会出现“Header had all ready send by”的错误提示。见如下代码:
未完,继续阅读