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‘); ?>