在php中循环时显示输出

时间:2011-08-29 16:32:27

标签: php

在无限循环中是否可以在浏览器上显示字符串?这就是我想要发生的事情:

while(1) {
     echo "should display these lines on browser while in infinite loop.<br>";
}

4 个答案:

答案 0 :(得分:13)

是的,有可能。如果您希望立即显示输出,则需要flush输出到浏览器:

while(1) {
     echo "should display these lines on browser while in infinite loop.<br>";
     flush();
}

无论你想要完成什么,这都不是你应该如何去做的。

PHP最终会超时,但在它生成大量 HTML文档之前,浏览器将无法显示它。

答案 1 :(得分:4)

注意使用ob_flush();来确保php输出,usleep(100000)有时间看到事情发生。

while(1) {
     echo "should display these lines on browser while in infinite loop.<br>";
     usleep(100000); // debuging purpose
     ob_flush();
     flush();
}

答案 2 :(得分:2)

在echo语句之后添加flush(),它会将输出刷新到浏览器。请注意,浏览器通常不会开始渲染,直到达到一定量的信息(大约.5kB)。

while(1) {
     echo "should display these lines on browser while in infinite loop.<br>";
     flush(); //Flush the output buffer
}

答案 3 :(得分:0)

如果你不想把flush();在你的代码的每次回声之后:

在php.ini中设置:

  

implicit_flush =关

或者,如果您无权访问php.ini:

  

@ini_set( 'implicit_flush',1);