例如,
这不起作用(Firefox 21,IE8):
<?php
function flush_buffers(){
ob_end_flush();
ob_flush();
flush();
ob_start();
}
ob_start();
echo 'Text 1<br />';
flush_buffers();
Sleep(2);
echo 'Text 2<br />';
flush_buffers();
Sleep(2);
echo 'Text 3<br />';
flush_buffers();
Sleep(2);
echo 'Text 4<br />';
?>
Run Code Online (Sandbox Code Playgroud)
但是这个有效:
<?php
function flush_buffers(){
echo str_pad('',4096);
ob_end_flush();
ob_flush();
flush();
ob_start();
}
ob_start();
echo 'Text 1<br />';
flush_buffers();
Sleep(2);
echo 'Text 2<br />';
flush_buffers();
Sleep(2);
echo 'Text 3<br />';
flush_buffers();
Sleep(2);
echo 'Text 4<br />';
?>
Run Code Online (Sandbox Code Playgroud)
我在Win XP SP3上运行PHP 5.4.11 VC9和Apache 2.4.3(apacheLounge).
有些浏览器包含自己的内部缓冲区,以便更有效地下载和显示,而且不那么紊乱.在大多数情况下,此缓冲区为4Kb或4096字节.
什么str_pad('',4096)是输出4,096个空格.由于它是HTML,因此这些空间会折叠成一个空格.
总的来说,不应该依赖这种行为.浏览器用于查看网页,而不是混入控制台终端.
另外,你为什么写作</br>?没有结束<br>标记这样的东西,而自闭版本则是<br />
| 归档时间: |
|
| 查看次数: |
1970 次 |
| 最近记录: |