如何为以下循环的每次迭代回显一些内容:
<?
for($i=0;$i<5;$i++) {
// some (slow) logic
echo $i;
}
?>
Run Code Online (Sandbox Code Playgroud)
我希望在运行时看到$i输出的值,但是这不输出任何内容,然后0 1 2 3 4执行脚本.
试试这个。这里的关键是知道为您的服务器设置了什么output_buffering值(默认= 4096)。
ob_start();
$buffer = str_repeat(" ", 4096)."\r\n<span></span>\r\n";
for ($i=0; $i<25; $i++) {
echo $buffer.$i;
ob_flush();
flush();
sleep(1);
}
ob_end_flush();
Run Code Online (Sandbox Code Playgroud)
http://php.net/manual/en/outcontrol.configuration.php