我编写了一个 PHP 脚本,它向搜索引擎发出请求,访问提供的结果,从结果中提取一些细节,然后以更有用的形式打印出来。
这一切都很好,但我偶然发现的是,在等待数据流式传输时调用 echo 或 print 可能会导致输出也被流式传输。具体来说,有多页结果,所以我访问第一页,读入并重新打印内容,然后转到下一页,在等待下一页加载时,前一页的内容在浏览器。
我不明白为什么这种情况如此不一致。有时在移动到下一页之前会打印一页,有时更少,有时更多。然后当我之后做基本相同的事情(在每个结果指向的页面中读取)时,输出几乎没有流式传输,每分钟左右重新绘制一次。
我file_get_contents($url)
用来检索内容,并调用一个函数echo
来打印到目前为止已经加载的内容。这种流式打印行为是浏览器的一项功能并且独立于我用 PHP 编写的内容吗?如果不是,如何更好地控制?