嘿,我真的不知道如何描述这个,但这是我目前的情况。内容一次全部显示PHP
在我的旧主机上,我可以有一个循环,并在循环中回显内容。当代码运行该循环时,我回应的文本将立即显示,并且我可以看到发生的事情。
现在尽管如此,在我目前的主机上,如果我有这样一个循环,我只能看到循环完成后脚本完全执行时正在回显的文本。
我只是想知道如果有人知道为什么?
谢谢!
编辑:输出缓冲和输出压缩关闭。
嘿,我真的不知道如何描述这个,但这是我目前的情况。内容一次全部显示PHP
在我的旧主机上,我可以有一个循环,并在循环中回显内容。当代码运行该循环时,我回应的文本将立即显示,并且我可以看到发生的事情。
现在尽管如此,在我目前的主机上,如果我有这样一个循环,我只能看到循环完成后脚本完全执行时正在回显的文本。
我只是想知道如果有人知道为什么?
谢谢!
编辑:输出缓冲和输出压缩关闭。
正如其他人所说,听起来像output buffering在您的主机上默认打开。
您可以使用ob_end_flush()(它发送任何缓冲的输出)或ob_end_clean()(它将丢弃任何输出)以编程方式关闭它。在代码的早期调用其中一个函数(例如,在脚本的顶部或某个配置文件中),至少可以让您获得这些功能的一部分。
如果您想全局关闭它,您也可以关闭php.ini中的输出缓冲,或者在.htaccess文件中设置php_value output_buffering Off
。如Tobias P.指出的那样,您可以使用flush()(尝试)强制任何PHP连接到(apache,CGI等)来刷新输出。
你使用flush()?如果你这样做,也许服务器缓存响应并一次发送它,请问你的webhoster
输出缓冲默认情况下在服务器配置。正如Tobias所说,请向您咨询webhost。
如前所述,输出缓冲可能由php.ini中的webhost启用。
我相信你可以在此检查自己(虽然它可能对于虚拟主机提供商禁止访问功能):
echo ini_get('output_buffering');
编辑:一些有用的链接