dongzhu0327 2011-04-18 22:06
浏览 42
已采纳

Web服务器是否可以使用扩展的输出时间流来响应HTTP请求?

When you run PHP scripts in the console, all the standard output text from that script shows up in the console window while the script is running. Is it possible for a browser window to similarly receive status reports in the browser while a lengthy PHP script is running, instead of getting all the output dumped at the conclusion of the script?

  • 写回答

2条回答 默认 最新

  • duanlan6259 2011-04-18 22:11
    关注

    Yes. Just call flush() and ob_flush() periodically. It's important to write some output at least every 120 seconds to keep the connection to the browser alive.

    A rough example:

        while(!$done) {
            //doWork();
            echo number_format(100 * ($workDone/$workTotal)) . "% ";
            flush();
            ob_flush();
        }
    

    Edit: here's an arbitrary proof of concept that works in my env:

    print('hello');
    print(str_repeat(".
    ", 2048));
    flush();
    //this might be a safe way to only flush the buffer if necessary?
    if(ob_get_length())
        ob_flush();
    sleep(60);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探