输出缓冲是一种告诉PHP引擎在将输出数据发送到浏览器之前保留输出数据的方法。众所周知,PHP将输出数据分段发送到浏览器,但是如果使用输出缓冲机制,则输出数据将存储在一个变量中,并在脚本末尾作为一个片段发送到浏览器。
让我们用一个简单的例子进行演示。
<?php ob_start(); echo "Hello"; $ob1 = ob_get_contents(); echo "nhooo.com"; $ob2 = ob_get_contents(); ob_end_clean(); var_dump($ob1, $ob2); ?>
输出结果
string(5) "Hello" string(20) "Hellonhooo.com"
在上面的示例中,ob_get_contents()捕获了自我们调用ob_start以来收集的所有数据,即缓冲区中的所有内容。之后立即发送输出数据。
单独打开输出缓冲可以减少在浏览器中下载和呈现HTML所花费的时间。因此,它减少了PHP脚本的执行时间。
如果在设置Cookie时遇到过诸如“警告:无法修改标题信息-标题已由(输出)发送的标题”之类的消息,则可以通过输出缓冲来解决。