• 4
  • 新人请关照

ob_flush在PHP7中实时打印foreach里的echo不能用?

阅读 175
评论
    1 个回答
    • 11.2k

    ob_flush 的确是输出缓冲区没错

    但 NGINX 和 php-fpm 之间还有一层缓冲区, 不是 php 的 output buffer 函数可以控制的.

    有几个地方需要调整, 你可以自己试试(取其一即可):

    1. PHP 输出一个 header('X-Accel-Buffering: no'); 的 HTTP Response Header, 仅影响当前请求
    2. 全局层面关闭 nginx 的 fastcgi 的缓冲, 配置为: fastcgi_buffering, 文档: http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_buffering

    或者干脆考虑换方案, 例如 websocket

      撰写回答

      登录后参与交流、获取后续更新提醒

      相似问题
      推荐文章