當(dāng)前位置:博客首頁(yè)>>PHP >> 閱讀正文

php的flush和ob_flush不起作用?

作者: 鄭曉 分類: PHP 發(fā)布于: 2016-04-08 08:55 瀏覽:8,209 評(píng)論(3)


我的基礎(chǔ)環(huán)境是nginx1.6.2+php5.3

做一個(gè)逐行輸出,使用ob_flush時(shí)試了N種方法不起作用,比如下面的代碼:


.......";
ob_flush();
flush();
sleep(1);
}
?>

谷歌了不少的寫法都不行,所以問(wèn)題應(yīng)該出在了環(huán)境配置上而不是使用方法上。
話說(shuō)還是stackoverflow給力,搜索“php flush not working”找到了一個(gè)正確的解決方法:
檢查nginx配置文件(nginx.conf),禁用nginx的buffering:

proxy_buffering off;
gzip off;
fastcgi_keep_conn on;

要注意最后這句fastcgi的哦~~
檢查php.ini,禁用buffering:

output_buffering = off

注意這句配置不能通過(guò)ini_set()函數(shù)動(dòng)態(tài)在程序中設(shè)置,這在php官方手冊(cè)中有說(shuō)明:

the output_buffering setting is PHP_INI_PERDIR therefore it may not be set using ini_set()

經(jīng)過(guò)上面兩步的配置(nginx.conf和php.ini)后,重啟nginx就可以了,再次測(cè)試文章開頭的代碼,成功逐行輸出。

? ? ? ?

本文采用知識(shí)共享署名-非商業(yè)性使用 3.0 中國(guó)大陸許可協(xié)議進(jìn)行許可,轉(zhuǎn)載時(shí)請(qǐng)注明出處及相應(yīng)鏈接。

本文永久鏈接: http://www.yjfs.org.cn/php-flush-ob-flush-notwork.html

php的flush和ob_flush不起作用?:目前有3 條留言

用戶評(píng)論頭像 孤寒的小窩頭發(fā)表于 2016年12月27日 14:05[回復(fù)]

用戶評(píng)論頭像 好書網(wǎng)發(fā)表于 2016年04月15日 10:54[回復(fù)]

好久沒過(guò)來(lái)瞅瞅了

用戶評(píng)論頭像 zengda發(fā)表于 2016年04月08日 10:23[回復(fù)]

不錯(cuò),不錯(cuò),看看了!

發(fā)表評(píng)論

change vcode