是否可以实时显示 print_r()。现场是指脚本执行时。我不想等待脚本结束来显示它。希望我清楚。预先感谢您的回复。干杯。马克
问问题
607 次
1 回答
2
您可能正在通过像 Apache 这样的网络服务器使用 PHP。
网络服务器已经实现了缓存,它们倾向于以更大的块发送数据。
浏览器也实现了缓存,它们只在完成加载网站时不时刷新数据。
最后,PHP 还内置了缓存。
HTTP 不是为“实时”显示而设计的,它更像是一个静态页面,这就是为什么人们发明了“AJAX”和 Javascript 来在页面加载后轮询更改/实时事件。
你可以做什么:
- 为了确保来自 PHP 的数据被发送到网络服务器,您可以使用命令
flush()
还有一个名为implicit_flush
您可能想要查找的 php 设置。 - 网络服务器可能使用 gzip/mod_gzip 来压缩输出。您需要禁用该行为。
也许会这样做:@apache_setenv('no-gzip', 1);
- 添加一些比纯文本更多的内容,如果您将数据放在一个简单的“表格”中,包括
</table>
它,浏览器更有可能在加载期间显示它。 - 在 php ini 中查找:
output_buffering = Off
zlib.output_compression = Off
您也可以在运行时执行此操作(@ini_set('zlib.output_compression', 0);
) - 一些浏览器只有在接收到一定数量的字节时才会显示数据。
如果我记得正确的 256 字节可能会有所帮助。
str_repeat(" ", 256);
(或其他任何东西)
我想补充一点,这些步骤可以帮助解决问题,但根据我的经验,结果并不完美。每个新的浏览器和浏览器版本可能会有所不同。
于 2012-04-19T12:09:54.033 回答