PHP - 如何实时显示print_r()

时间:2012-04-19 11:59:52

标签: php

是否可以实时显示print_r()。通过实时我的意思是脚本执行时。我不想等到脚本结束才能显示它。希望我很清楚。提前感谢您的回复。干杯。马克

1 个答案:

答案 0 :(得分:2)

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

Web服务器实现了缓存,他们倾向于以更大的块发送数据 浏览器也实现了缓存,它们只是不时刷新数据,最后在加载网站时刷新 最后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. 执行此操作
  6. 有些浏览器只会在收到一定数量的字节时显示数据 如果我记得正确的256字节可能会有所帮助 str_repeat(" ", 256);(或其他任何内容)
  7. 我想补充一点,这些步骤可以帮助解决问题,但根据我的经验,结果并不完美。 每个新的浏览器和浏览器版本可能会有所不同。