【问题标题】:Disable output buffering on my local XAMPP server在我的本地 XAMPP 服务器上禁用输出缓冲
【发布时间】:2011-01-26 10:00:18
【问题描述】:

由于某种原因,我的 XAMPP 服务器正在缓冲我的 PHP 的输出。我希望它随它吐出。任何人都知道我需要更改哪些设置才能实现这一目标?

【问题讨论】:

  • 您是否在代码中强制使用 flush() 来查看发送到屏幕的输出?
  • 在脚本顶部添加ini_set('display_errors',1);error_reporting(E_ALL);

标签: php output-buffering


【解决方案1】:

XAMPP 似乎默认将 output_buffering 设置为 4096。 (因此内容以 4K 块的形式提供 - 一个可能的性能优势。尽管如果部署在禁用此功能的服务器上,这可能会导致意外的错误(例如,“标头已发送”等),顺便说一下,这是 PHP 的默认设置。)

php.ini:

; Default Value: Off
; Development Value: 4096
; Production Value: 4096
; http://php.net/output-buffering
output_buffering=4096

设置为:

output_buffering=Off

然后重启你的服务器。

【讨论】:

    【解决方案2】:

    查看ob_end_flush(),手册中关于output control 的章节——特别是php.ini settings

    当然,如果您只是得到一个空白页面,请检查您的错误报告设置 - 很可能一个错误会停止脚本,并且在关闭错误报告后您什么也看不到。

    【讨论】:

    • 我检查了 php.ini 输出缓冲已关闭,并且 ob_end_flush 没有给出输出...还有什么可以阻止我的脚本在执行期间回显吗?
    • 如果您使用某种框架,它可能会设置输出缓冲而不管设置如何。如果您得到的只是一个空白页,请检查错误报告。任何示例代码/输出?
    【解决方案3】:

    如果你在 Xdebug 中调试它并在浏览器中检查输出,可能有几个原因。 1) php 2)阿帕奇(网络服务器) 3) 网络浏览器

    阅读本文了解详细信息:

    http://muzso.hu/2008/02/19/php-output-buffering

    【讨论】:

      猜你喜欢
      • 2014-12-14
      • 1970-01-01
      • 2010-09-11
      • 2019-05-04
      • 2017-12-26
      相关资源
      最近更新 更多