2011-06-01 56 views
2

这真的很奇怪,我上周刚换了服务器,而且我有一个处理大量信息的大脚本(个人脚本)。如何在PHP中呈现页面?

它做什么它用foreach添加东西到数据库中,然后回显它的位置(例如:“ID#27已处理”)等等,直到完成。使用旧的服务器,我会看到这个“回声”脚本逐个运行,但是使用我的新服务器,它会显示带有沙漏的空白页面,直到加载/完成。

在服务器或PHP上有配置可以显示页面的构造吗?

感谢

回答

4

如果您有权访问php.ini,则可以设置output_buffering = Off以完全禁用此行为。否则,按其他人的建议使用flush()

我相信output_buffering的默认设置是4096。如果新服务器设置得高得多,您也可以尝试简单地降低它,而不是关闭它以实现与旧服务器类似的行为,而不会完全丢失缓冲区。

EDITAccording to PHP docs,阿帕奇mod_gzip可以做这防止flush()从工作它自己的输出缓冲。

+0

但是,这可能会影响缓冲确实有用的许多页面。 – Waldheinz 2011-06-01 12:57:18

+0

如果我的php.ini设置已经设置为output_buffering = Off,是否正常,它仍然只响应页面完全加载时的所有内容? – Joel 2011-06-01 17:23:32

+0

太好了,谢谢你的回答 – Joel 2011-06-01 20:10:12

2

调用flush后,每一个相关的输出可能会有帮助。

0

我假设你使用flush()将输出推送到客户端。 有关在PHP页面上刷新的注意事项,请参阅说明。例如:flush() may not be able to override the buffering scheme of your web server and it has no effect on any client-side buffering in the browser.

这可以立即解释整个情况。 你能证实这些笔记不是原因吗?