当前位置:  开发笔记 > 编程语言 > 正文

PHP即时回声

如何解决《PHP即时回声》经验,为你挑选了3个好方法。

我有一个很长的数据挖掘脚本,在其中的一部分我回应了一些信息到页面(实际上在foreach循环期间).

但是我注意到信息不是像我希望的那样立即发送到浏览器,而是在"段"中.

我的echo之后是否可以使用一些函数立即将所有数据发送到浏览器?

谢谢.



1> ieure..:

你可能想要flush().但是,PHP可能正在使用输出缓冲.有迹象表明,这可以改变的事情的几种方法,但简而言之,你可以flush()的话ob_flush().



2> Jeremy Stanl..:

您可以尝试在每次回显后使用flush(),但即使这样也不能保证写入客户端,具体取决于您正在运行的Web服务器.



3> Bigue Nique..:

是的,将输出填充为1024字节将导致大多数浏览器开始显示内容.

但是我们也从@ nobody的问题回答" 如何在每次`echo`调用之后刷新输出? "只有在浏览器必须猜测页面的字符编码时才会发生1024字节的浏览器缓冲效果,这可以通过发送适当的Content-Type标头(例如"Content-Type:text/html; charset = utf-8"),或通过适当的html元标记指定内容字符集.它在所有浏览器中都适用于我.

所以基本上,所有人需要做的是:

header('Content-Type: text/html; charset=utf-8');
ob_implicit_flush(true);

不需要额外的填充或冲洗,这对代码具有很好的美容效果!当然,标头必须在任何内容之前发送,并且还必须确保没有输出缓冲正在进行.

问题肯定为我解决了!请(+1)@ nobody在另一个问题上的答案,如果它适合你.但是,如果一个人仍遇到问题,我建议查看其他问题的答案,以解决其他可能导致隐含的冲洗无法正常工作的具体情况.

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有