一、什么是缓冲区?

答:就是把输入或者输出的内容先放进内存,而不显示或者读取,作用:协调高速CPU和相对缓慢的IO设备(磁盘等)的运作。

二、什么是php 输出缓存控制(Output Control)

答:由于输出php类似echo输出的时候,首先输出到php buffer里面的。所以我们可以控制这个缓存里面的数据了。

三、php执行过程原理

当执行PHP的时候,如果碰到了echo print_r之类的会输出数据的代码,PHP就会将要输出的数据放到PHP自身的缓冲区,等待输出。
当PHP自身的缓冲区接到指令,指示要输出缓冲区的内容时,将会把缓冲区内的数据输出到apache上,apache接受到PHP输出的数据,然后再把该数据存在到apache自身的缓冲区内,等到输出
当apache接受到指令,只是要输出缓冲区的内容时, 将会把缓冲区的内容输出,返回到浏览器。

由此可见,PHP要输出数据的时候,将会经过两个缓冲区(先是自身的,然后是apache的),再返回到浏览器。

四、实例如下:

1.

***************************************

echo "hello word <br/>"; //向浏览器输出hello word

$content = ob_get_contents(); //返回php缓冲区的内容

var_dump($content);//打印php缓冲区的内容。

结果是:

hello word 
string(16) "hello word"

这是说明缓冲区里面是有数据。也就是先进来php缓冲区的。

***************************************


参照以下网址学习

  1. http://www.jb51.net/article/68780.htm

  2. http://blog.csdn.net/adslcom/article/details/8282342

  3. http://www.cnblogs.com/liuzhang/p/4161213.html