我正在编写一个PHP脚本,动态生成大量(多MB)输出,但不知道预先的长度。我通过
我猜测Apache正在缓存输出,因为浏览器通常在从服务器接收到几KB后显示。
有人有关于如何停止此缓存并在生成时将数据刷新到浏览器的想法吗?
谢谢, J
fwrite()
直接写入php://output
,并尝试了标准输出和使用Transfer-Encoding: chunked
(根据需要编码块),但无论我尝试什么,浏览器都会等待所有数据被写入后才显示下载对话框。我已经尝试在头部和每个块之后使用flush()
,但这也没有任何区别。我猜测Apache正在缓存输出,因为浏览器通常在从服务器接收到几KB后显示。
有人有关于如何停止此缓存并在生成时将数据刷新到浏览器的想法吗?
谢谢, J
sleep(1)
调用。(我怀疑 Apache 在单个套接字上维护数兆字节之前会刷新其缓冲区。) - sarnold