我有一个很长的数据挖掘脚本,在其中的一部分我回应了一些信息到页面(实际上在foreach循环期间).
但是我注意到信息不是像我希望的那样立即发送到浏览器,而是在"段"中.
我的echo之后是否可以使用一些函数立即将所有数据发送到浏览器?
谢谢.
你可能想要flush()
.但是,PHP可能正在使用输出缓冲.有迹象表明,这可以改变的事情的几种方法,但简而言之,你可以flush()
的话ob_flush()
.
您可以尝试在每次回显后使用flush(),但即使这样也不能保证写入客户端,具体取决于您正在运行的Web服务器.
是的,将输出填充为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在另一个问题上的答案,如果它适合你.但是,如果一个人仍遇到问题,我建议查看其他问题的答案,以解决其他可能导致隐含的冲洗无法正常工作的具体情况.