PHP输出缓冲控制可以解决程序先输出数据,后输出头部信息的问题。比如,下面的程序
在不打开缓冲区的情况下会报出如下警告:
因为header()函数会发送一段头信息给浏览器,而在给浏览器发送头信息之前不能有任何输出的,否则就会出现上面的警告!
现在我们将缓冲区打开:
再次执行程序,结果如下:
这时候我们看到成功跳转到了index.php,不再输出警告信息了。因为我们打开了缓冲区,Hello World!会在程序结束之后才输出给浏览器,所以不会报警告信息。
我们可以通过ob_start()函数来打开缓冲区。php.ini文件中有一个配置缓冲区打开和关闭的配置项:
因为该选项默认是关闭的,所以我们需要通过ob_start来手动开启缓冲区,如果选项配置为output_buffering = On,那么我们就不需要ob_start()啦!
ob_前缀的输出控制函数常用的还有flush()、ob_get_contents()、ob_get_length()、ob_end_flush()、ob_end_clean()等几个。
flush()函数输出当前缓冲区的内容。
ob_get_contents()函数获取当前缓冲区的内容。
ob_get_length()函数获取当前缓冲区内容的长度。
ob_end_flush()函数输出并结束当前缓冲区。
ob_end_clean()清除并结束当前缓冲区。
以上就是PHP输出控制的简单介绍。