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();
    ?>
    
  • 相关阅读:
    把swf反编译成fla的几种方法
    隐藏tomcat页面异常显示的版本信息
    配置Tomcat-8.5 JVM内存参数
    Nim Game
    Longest Increasing Path in a Matrix
    信息熵和信息增益
    故乡的云
    urllib编码
    odd_even_list
    Different Ways to Add Parentheses
  • 原文地址:https://www.cnblogs.com/zcy_soft/p/2283222.html
Copyright © 2011-2022 走看看