这个循环不会回显我的字符串

时间:2009-12-17 12:30:36

标签: php

我有一个无限循环,我想睡一会儿,但浏览器只是挂起而没有任何回声。有人可以告诉我为什么吗?

while(1)
{
    sleep(1);
    echo 'test'.'<br>';
}

4 个答案:

答案 0 :(得分:2)

在服务器停止处理之前它将无效。

答案 1 :(得分:2)

您可以尝试使用flush()刷新输出缓冲区,但它是not guaranteed to work

PHP.net

尝试此功能
function flush_buffers() { 
    ob_end_flush(); 
    ob_flush(); 
    flush(); 
    ob_start(); 
} 

答案 2 :(得分:1)

那是因为PHP以大块的形式向浏览器发送数据。这一切都与优化有关,发送小数据对性能不利,你希望它以足够大的块发送,因此传输它的开销(速度和实际流量)都会相对较低。几串小弦不够大。尝试在flush()之后添加echo,它会强制PHP将此字符串发送到浏览器。

答案 3 :(得分:0)

Couse它是一个无限循环它永远不会发送响应或被打破