PHP 典型用法和使用ob_start的原因

示例

ob_start在页面上进行重定向时特别方便。例如,以下代码将不起作用:

Hello!
<?php
  header("Location: somepage.php");
?>

将给出的错误如下:headers already sent by <xxx> on line <xxx>。

为了解决此问题,您可以在页面开始处编写如下内容:

<?php
  ob_start();
?>

在页面末尾,如下所示:

<?php
  ob_end_flush();
?>

这会将所有生成的内容存储到输出缓冲区中,并一次性显示它。因此,如果页面上有任何重定向调用,则这些调用将在发送任何数据之前触发,从而消除了发生headers already sent错误的可能性。