什么是 PHP 输出缓冲?


输出缓冲是一种让 PHP 引擎在将输出数据发送到浏览器前暂时保存该数据的方法。众所周知,PHP 会分段将输出数据发送至浏览器。但是,如果我们利用输出缓冲机制,输出数据将会存储在变量中,并等到脚本结束后以一个整体的形式发送到浏览器。

示例

我们通过一个简单的范例来进行说明。

 在线示例

<?php
   ob_start();
   echo "Hello";
   $ob1 = ob_get_contents();
   echo "Tutorials Point";
   $ob2 = ob_get_contents();
   ob_end_clean();
   var_dump($ob1, $ob2);
 ?>

输出

string(5) "Hello"
string(20) "HelloTutorials Point"

说明

在上面的示例中,ob_get_contents() 会获取从调用 ob_start 以来收集到的所有数据,也就是缓冲器中的所有数据。完成此操作后,一次发送输出数据。

输出缓冲的优势

  • 仅仅启用输出缓冲就可减少浏览器下载并呈现 HTML 所需的时间。因此,它可以减少 PHP 脚本的执行时间。
  • 如果你在设置 cookie 时,曾经遇到“警告:无法修改标头信息——标头已被(输出)发送”这样的消息,那么可以通过输出缓冲来解决。

更新于: 2020 年 6 月 29 日

3K+ 浏览量

开启你的 事业

完成课程获得认证

开始
广告