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

新手上路,请多包涵
阅读 1.9k
1 个回答

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏