内容一次显示PHP

时间:2010-06-27 18:25:48

标签: php

嘿,好吧,我真的不知道怎么形容这个,但这是我目前的情况。

在我的旧主机上,我可以循环播放并回显循环中的内容。当代码运行该循环时,我正在回显的文本会立即出现,我可以看到发生的事情。

现在,在我当前的主机上,如果我有一个这样的循环,我只看到循环完成后回显的文本,并且脚本完全执行完毕。

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

谢谢!

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

4 个答案:

答案 0 :(得分:1)

您使用flush()吗?如果你这样做,也许服务器会缓存响应并立即发送所有内容,请问你的webhoster

答案 1 :(得分:1)

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

答案 2 :(得分:1)

如前所述,输出缓冲很可能是由php.ini中的webhost启用的。

我相信您可以自己检查一下(但是,虚拟主机可以禁用对该功能的访问):

echo ini_get('output_buffering');

编辑:一些有用的链接

http://php.net/manual/en/outcontrol.configuration.php

http://php.net/manual/en/book.outcontrol.php

答案 3 :(得分:1)

正如其他人所说的,默认情况下,output buffering似乎在您的主机上处于启用状态。

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

如果你想全局关闭它,你也可以在php.ini中关闭输出缓冲,或者在.htaccess文件中设置php_value output_buffering Off

正如Tobias P.所指出的那样,你可以使用flush()来(试图)强制连接PHP(apache,CGI等)来刷新输出。