发布于 1970-01-01 08:00
  • 5 个回答
    • 在输出前先输出一个nginx特定的header:

      header('X-Accel-Buffering: no');

      这样无需设置什么gzip啊,缓存大小啊什么的
      官方文档

      2022-12-01 19:59 回答
    • flush();
      ob_flush();
      
      2022-12-01 19:59 回答
    • WAMP下:

      for($i=1;$i<=10;$i++){
              echo str_pad(' ', 4096);
              echo json_encode(array('error'=>0,'msg'=>'这是测试的输出——'.$i));
              ob_flush();
              flush();
              sleep(1);
          }
      

      我试了试,这样是可以的。
      http://segmentfault.com/q/1010000000447596

      Ngnix下:
      关闭php.ini下的:zlib.output_compression = Off
      关闭nginx.conf下的:gzip off
      修改代码为echo str_pad(' ', 64000);

      2022-12-01 19:59 回答
    • function  test(){
          header("Content-Encoding: none\r\n");
          ini_set('zlib.output_compression', 'off');
          ob_start();
          for($i=0;$i<100;$i++){
              echo str_repeat(" ",4096);
              echo $i."<br>";
              ob_flush();
              flush();
              sleep(1);
          }
      }
      
      2022-12-01 19:59 回答
    • 经测试,楼上回答正确。 完美解决了nginx下无法flush的问题

      2022-12-01 19:59 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有