在我的本地XAMPP服务器上禁用输出缓冲。

6

由于某些原因,我的XAMPP服务器正在缓冲我的PHP输出。我希望它能够实时输出。有没有人知道我需要更改哪些设置来实现这一点?


你在代码中使用了force flush()来查看输出到屏幕的内容吗? - Armand
在您的脚本顶部添加ini_set('display_errors',1);error_reporting(E_ALL); - Félix Adriyel Gagnon-Grenier
3个回答

3

XAMPP似乎默认将output_buffering设置为4096。(因此内容以4K块的形式提供-这可能会带来性能上的好处。尽管如果在禁用此功能的服务器上部署,这可能会导致意外的错误(例如,“headers already sent”等),而这恰好是PHP的默认设置。)

php.ini中:

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

设置为:

output_buffering=Off

并重新启动您的服务器。


1

请查看ob_end_flush(),手册中关于输出控制的章节 - 特别是php.ini设置

当然,如果您只看到一个空白页面,请检查您的错误报告设置 - 很可能一个错误会停止脚本,并且关闭错误报告后您将看不到任何内容。


我检查了php.ini文件,输出缓冲关闭了,而且ob_end_flush函数没有输出...还有其他什么可能会阻止我的脚本在执行期间输出呢? - Mark
如果您正在使用某种框架,它可能会设置输出缓冲区,而不考虑设置。如果您只得到一个空白页面,请检查错误报告。有任何示例代码/输出吗? - Tim Lytle

0

如果您正在使用Xdebug进行调试,并在浏览器中检查输出,可能有以下几个原因:

  1. PHP
  2. Apache(Web服务器)
  3. Web浏览器

请阅读此文以获取详细信息:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接