0

是否可以实时显示 print_r()。现场是指脚本执行时。我不想等待脚本结束来显示它。希望我清楚。预先感谢您的回复。干杯。马克

4

1 回答 1

2

您可能正在通过像 Apache 这样的网络服务器使用 PHP。

网络服务器已经实现了缓存,它们倾向于以更大的块发送数据。
浏览器也实现了缓存,它们只在完成加载网站时不时刷新数据。
最后,PHP 还内置了缓存。

HTTP 不是为“实时”显示而设计的,它更像是一个静态页面,这就是为什么人们发明了“AJAX”和 Javascript 来在页面加载后轮询更改/实时事件。

你可以做什么:

  1. 为了确保来自 PHP 的数据被发送到网络服务器,您可以使用命令flush()
    还有一个名为implicit_flush您可能想要查找的 php 设置。
  2. 网络服务器可能使用 gzip/mod_gzip 来压缩输出。您需要禁用该行为。
    也许会这样做:@apache_setenv('no-gzip', 1);
  3. 添加一些比纯文本更多的内容,如果您将数据放在一个简单的“表格”中,包括</table>它,浏览器更有可能在加载期间显示它。
  4. 在 php ini 中查找:
    output_buffering = Off
    zlib.output_compression = Off
    您也可以在运行时执行此操作(@ini_set('zlib.output_compression', 0);
  5. 一些浏览器只有在接收到一定数量的字节时才会显示数据。
    如果我记得正确的 256 字节可能会有所帮助。
    str_repeat(" ", 256);(或其他任何东西)

我想补充一点,这些步骤可以帮助解决问题,但根据我的经验,结果并不完美。每个新的浏览器和浏览器版本可能会有所不同。

于 2012-04-19T12:09:54.033 回答