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();
    ?>
    
  • 相关阅读:
    [2020多校联考]甲虫
    .eww
    MinGW安装c-c++
    .竖梁上的两个孔最小距离可以是多少呢?PS15D
    .dwg(sw)-exb
    开始学emacs-1
    看jpg和png图片
    .系列化参数关系
    2015计划
    大蚂蚁在64位系统下,右键没有快发的解决方案
  • 原文地址:https://www.cnblogs.com/zcy_soft/p/2283222.html
Copyright © 2011-2022 走看看