>  기사  >  백엔드 개발  >  php ob_flush 不能每隔一秒输出的解决方法

php ob_flush 不能每隔一秒输出的解决方法

WBOY
WBOY원래의
2016-07-25 08:58:55801검색
  1. $i = 3;
  2. ob_start();
  3. while ($i--) {
  4. echo $i, "
    ";
  5. ob_flush();
  6. flush();
  7. sleep(1);
  8. }
  9. ob_end_clean();
  10. ?>
复制代码

问题:这段代码不能每隔一秒输出呢? 原因分析: apache运行原理:当访问一个地址(发送请求)后,在apache服务器中启动PHP,php执行是页面级的,如果有可执行的代码: 它全部执行完后再丢给apache,apache再丢给browser显示结果。

解决方法: 如果是cli 显示结果方式又不一样,那里不一样呢? linux cmd: php5 test.php 由php直接执行,不经过apache,web service,即可实现:

  1. $i = 3;
  2. while ($i--) {
  3. echo $i, "\n";
  4. sleep(1);
  5. }
  6. ob_end_clean();
  7. ?>
复制代码


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.