我正在阅读有关缓冲内容的内容,我发现了一个简单的脚本来显示flush
的效果<?php
if (ob_get_level() == 0) ob_start();
for ($i = 0; $i < 10; $i++) {
echo "<br> Line to show.";
echo str_pad('', 4096) . "\n";
ob_flush();
flush();
sleep(2);
}
echo "Done.";
ob_end_flush();
?>
这个脚本工作正常并显示输出,但是当我删除str_pad或将长度从4096减少到40时,刷新不起作用。
任何人都可以帮助我解决究竟是什么原因造成的......
答案 0 :(得分:1)
Atlast我找到了原因。
根据PHP.net Broswers需要某些字节才能开始显示页面。像某些版本的Internet Explorer需要200个字节。像Firefox或Chrome这样的现代浏览器需要更多字节来启动浏览器显示。
在上述情况下,如果您在Internet Explorer中检查它,则不需要字符串填充,但在Firefox或Chrome中,您需要使用输入的Padd空格来显示刷新的输出。
答案 1 :(得分:0)
我认识到这个问题,自己做过一次..你有激活输出压缩吗?