$i = 3; ob_start(); while ($i--) { echo $i, ""; ob_flush(); flush(); sleep(1); } ob_end_clean(); ?> 复制代码 问题:这段代码不能每隔一秒输出呢? 原因分析: apache运行原理:当访问一个地址(发送请求)后,在apache服务器中启动PHP,php执行是页面级的,如果有可执行的代码: 它全部执行完后再丢给apache,apache再丢给browser显示结果。 解决方法: 如果是cli 显示结果方式又不一样,那里不一样呢? linux cmd: php5 test.php 由php直接执行,不经过apache,web service,即可实现: $i = 3; while ($i--) { echo $i, "\n"; sleep(1); } ob_end_clean(); ?> 复制代码