什么是缓冲区?
缓冲区的作用就是,把输入或者输出的内容先放进内存,而不显示或者读取.缓冲区最本质的作用就是,协调高速CPU和相对缓慢的IO设备(磁盘等)的运作.
在一般的php脚本中,php标签在外的任何HTML都会立即发送到web浏览器,一旦执行了print语句,所有的打印内容也如此。利用输出缓冲,HTML和打印的数据将会被放到缓冲(也就是内存)中,当脚本执行结束后,缓冲将被发送到web浏览器,或者需要的话可以清空,使用缓冲的一个优点在于,无需担心出现“HTTP头已经发送”的错误。
要启动缓冲,只需要在页面开始时使用ob_start()函数,在脚本结束时使用ob_end_flush()函数将累计下来的缓冲发送到web浏览器或者使用ob_end_clean()函数删除缓冲的数据而不进行传输。
<pre name="code" class="php"><?php
ob_start(); //开启输出缓冲
?>
<!-- html-->
<?php
ob_end_flush();//完成输出缓冲,将累积的缓冲发送到web浏览器,并关闭缓冲,换句话说,所有的HTML都在此刻发送。
?>
有些函数只能在没有任何东西被发送到浏览器之前调用,像header(),setcookie(),session_start()。如果在web浏览器已经收到了一些文本,HTML或者哪怕一个空格之后再调用这些函数就会出现HTTP头已发送的错误消息。warning:Cannot modify header information - header already sent by .......