PHP如何利用sleep实现 输出->等待->输出

sleep()函数一般用在暂停上,但是一个PHP一旦有了sleep,其他的输出(print,echo)就都要等待sleep()函数的完成,这是因为缓冲区,这里有详细解释

在这里不赘述,而如果要实现先输出再等待再输出,则用到了ob_flush()和flush();

上面链接的文章有这样一段,解释了为什么需要ob_flush()和flush();

在没有开启缓存时,脚本输出的内容都在服务器端处于等待输出的状态 ,flush()可以将等待输出的内容立即发送到客户端。

开启缓存后,脚本输出的内容存入了输出缓存中 ,这时没有处于等待输出状态的内容,你直接使用flush()不会向客户端发出任何内容。而 ob_flush()的作用就是将本来存在输出缓存中的内容取出来,设置为等待输出状态,但不会直接发送到客户端 ,这时你就需要先使用 ob_flush()再使用flush(),客户端才能立即获得脚本的输出。

 

所以代码是这样的

<?php

    echo date('h:i:s').'</br>';
    ob_flush();
    flush(); 
    sleep(5);
    echo date('h:i:s');
?>

 

posted @ 2018-02-04 16:49  松手丶明晃晃  阅读(483)  评论(0编辑  收藏  举报