每当有一些数据要发送时,我会立即尝试将数据从PHP输出到浏览器。我已经搜索了一个解决方案并最终得到了下面的代码,每一行都应该每秒在浏览器中显示。
这应该根据PHP手册和其他网站工作。但对我来说却没有。浏览器等待5秒钟并立即显示所有内容。我已经尝试过最新版本的Firefox,Chrome和IE,我无法弄清楚为什么在每次ob_flush / flush之后都没有显示结果。谁能解释一下?
<?php
header( 'Content-type: text/html; charset=utf-8' );
ob_implicit_flush(true);
ob_start();
for ($i = 0; $i<5; $i++){
echo "<p>{$i}. Displaying one line...</p>";
echo str_pad('',4096)."\n";
ob_flush();
flush();
sleep(1);
}
echo "Done.";
ob_end_flush();
?>
注意:我还在开始时尝试使用ob_end_flush,删除标题行,发送更长的echo字符串,读取Stack Overflow上的其他帖子等等。浏览器仍然等待输出完成。