【PHP】实现立即输出缓冲区内容

2019-03-06  本文已影响0人  Kofu
for ($i = 0; $i < 10; $i++) {
    echo $i . '<br>';
    ob_flush();
    flush();
    sleep(1);
}

按代码理解似乎应该是每过1秒钟就会输出一次数据,但在Nginx服务器会待代码执行完一并输出。

nginx 里面 flush 默认是无效的,这个函数默认是作用在php作为 apache模块时才有效,如果需要 nginx 里面支持,需要加上一行 :

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

X-Accel-Buffering 相关入口

完整代码如下:

header('Cache-Control: no-cache') ;// 禁用浏览器缓存
header('X-Accel-Buffering: no');  // 适用于Nginx服务器环境

for ($i = 0; $i < 10; $i++) {
    echo $i . '<br>';
    ob_flush();
    flush();
    sleep(1);
}
上一篇 下一篇

猜你喜欢

热点阅读