什么是输出缓冲?

2022-08-30 06:19:31

什么是输出缓冲,为什么在PHP中使用它?


答案 1

面向 Web 开发人员的输出缓冲,初学者指南

如果没有输出缓冲(默认值),您的 HTML 将作为 PHP 通过脚本处理而分段发送到浏览器。使用输出缓冲,您的HTML存储在变量中,并在脚本末尾作为一个部分发送到浏览器。

输出缓冲对 Web 开发人员的优点

  • 单独启用输出缓冲可以减少下载和呈现 HTML 所需的时间,因为 PHP 处理 HTML 时,它不会分段发送到浏览器。
  • 我们可以用PHP字符串做的所有花哨的事情,我们现在可以将整个HTML页面作为一个变量来做。
  • 如果您在设置 Cookie 时遇到过消息“警告:无法修改标头信息 - 标头已由(输出)发送”,您将很高兴知道输出缓冲是您的答案。

答案 2

PHP 使用输出缓冲来提高性能并执行一些技巧。

  • 您可以让PHP将所有输出存储到缓冲区中,并一次输出所有输出,从而提高网络性能。

  • 在某些情况下,您可以访问缓冲区内容,而无需将其发送回浏览器。

请考虑以下示例:

<?php
    ob_start( );
    phpinfo( );
    $output = ob_get_clean( );
?>

上面的示例将输出捕获到变量中,而不是将其发送到浏览器。默认情况下,output_buffering处于关闭状态。

  • 在发送内容后要修改标头的情况下,可以使用输出缓冲。

请考虑以下示例:

<?php
    ob_start( );
    echo "Hello World";
    if ( $some_error )
    {
        header( "Location: error.php" );
        exit( 0 );
    }
?>

推荐