什么是PHP输出缓冲?

输出缓冲是一种告诉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时遇到过诸如“警告:无法修改标题信息-标题已由(输出)发送的标题”之类的消息,则可以通过输出缓冲来解决。