如何在生成时回显输出

vma*_*k99 5 php

如何为以下循环的每次迭代回显一些内容:

<?
    for($i=0;$i<5;$i++) {
          // some (slow) logic
          echo $i;
    } 
?>
Run Code Online (Sandbox Code Playgroud)

我希望在运行时看到$i输出的值,但是这不输出任何内容,然后0 1 2 3 4执行脚本.

Mar*_*yor 1

试试这个。这里的关键是知道为您的服务器设置了什么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