清除并关闭缓冲,输出到浏览器之前使用这个函数。

ob_end_clean();

控制隐式缓冲泻出,默认off,打开时,对每个 print/echo 或者输出命令的结果都发送到浏览器。

ob_implicit_flush(1);

ob_end_clean(); ob_implicit_flush(1); for ($i=0; $i < 10 ; $i++) { echo $i; //浏览器需要凑够一定的字节数才会输出 echo str_repeat ( " " , 1024 ) ; sleep(1);

ob_*系列函数, 是操作PHP本身的输出缓冲区.

ob_flush()

flush, 严格来讲, 这个只有在PHP做为apache的Module(handler或者filter)安装的时候, 才有实际作用.

它是刷新WebServer(可以认为特指apache)的缓冲区.

前者是把数据从PHP的缓冲中释放出来,后者是把不在缓冲中的或者说是被释放出来的数据发送到浏览器。

flush()

for ($i=0; $i < 10 ; $i++) { 
    echo $i;
    echo str_repeat ( " " , 1024 ) ;
     ob_flush ( ) ;
     flush ( ) ;
    sleep(1);

深入理解ob_flush和flush的区别