zoukankan      html  css  js  c++  java
  • php ob_flush 不能每隔一秒输出

    实现功能:

      浏览器每隔一秒输出一个数字。

    php.ini配置为
    版本5.3
    implicit_flush = off
    output_buffering = off
    另:查看output_buffering是否打开,可以:var_dump(ini_get('output_buffering'));

    好我们再来看看这段代码:

    <?php
            $i = 3;
            ob_start();
            while ($i--) {
                    echo $i, "<br />";
                    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,就可以实现

    <?php
            $i = 3;
            while ($i--) {
                    echo $i, "\n";
                    sleep(1);
            }
            ob_end_clean();
    ?>
    
  • 相关阅读:
    Xcode代码块快捷输入
    Git常用命令
    vim
    MACOX中apache配置
    IOS中实现动画的几种方式
    Swift与OC混合编译
    网络图像加载
    我对互联网的理解
    运行时
    自动布局使用
  • 原文地址:https://www.cnblogs.com/zcy_soft/p/2283222.html
Copyright © 2011-2022 走看看