问题
希望强制将输出发送到浏览器。例如,希望在完成一个可能很慢的数据库查询之前为用户提供一个状态更新。
解决方案
使用flush():
print 'Finding identical snowfakes...';
flush();
$sth = $dbh->query('SELECT shape,COUNT(*) AS C FROM snowfakes GROUP BY shape HAVING C > 1');
flush()函数将PHP在内部缓冲的所有输出发送到Web服务器,不过Web服务器可能也有自己的内部缓冲,数据到达浏览器可能会因此而延迟。另外,一些浏览器接收到数据时
并不立即显示,有些版本的Internet Explorer至少接收到256字节后才会显示页面。要强制IE显示内容,可以在页面最前面输出空格:
强制IE立即显示内容
print str_repeat(' ',300);
print 'Finding identical snowfakes...';
flush();
$sth = $dbh->query('SELECT shape,COUNT(*) AS C FROM snowfakes GROUP BY shape HAVING C > 1');