2010-06-27 76 views
1

嘿,我真的不知道如何描述这个,但这是我目前的情况。内容一次全部显示PHP

在我的旧主机上,我可以有一个循环,并在循环中回显内容。当代码运行该循环时,我回应的文本将立即显示,并且我可以看到发生的事情。

现在尽管如此,在我目前的主机上,如果我有这样一个循环,我只能看到循环完成后脚本完全执行时正在回显的文本。

我只是想知道如果有人知道为什么?

谢谢!

编辑:输出缓冲和输出压缩关闭。

回答

1

正如其他人所说,听起来像output buffering在您的主机上默认打开。

您可以使用ob_end_flush()(它发送任何缓冲的输出)或ob_end_clean()(它将丢弃任何输出)以编程方式关闭它。在代码的早期调用其中一个函数(例如,在脚本的顶部或某个配置文件中),至少可以让您获得这些功能的一部分。

如果您想全局关闭它,您也可以关闭php.ini中的输出缓冲,或者在.htaccess文件中设置php_value output_buffering Off。如Tobias P.指出的那样,您可以使用flush()(尝试)强制任何PHP连接到(apache,CGI等)来刷新输出。

1

你使用flush()?如果你这样做,也许服务器缓存响应并一次发送它,请问你的webhoster

1

输出缓冲默认情况下在服务器配置。正如Tobias所说,请向您咨询webhost。