五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > iis+php中刷新輸出緩沖flush無(wú)效的解決方法

iis+php中刷新輸出緩沖flush無(wú)效的解決方法

文章來(lái)源:365jz.com     點(diǎn)擊數(shù):566    更新時(shí)間:2023-03-20 07:26   參與評(píng)論

我在一次調(diào)試PHP逐行輸出時(shí)候,發(fā)現(xiàn)ob_flush和flush兩個(gè)都失效了,通過(guò)phpinfo基本能判斷php.ini的設(shè)置是正常的。

IIS中flush失效的解決方法:

您必須將所需處理程序的ResponseBufferLimit值設(shè)置為足夠低的數(shù)字,以使其實(shí)際刷新.我建議使用0,因?yàn)樗柚笽IS除了傳遞PHP腳本發(fā)送的內(nèi)容之外,什么都不做. 您可以使用以下命令行將php處理程序的ResponseBufferLimit設(shè)置為0

appcmd.exe set config /section:handlers "/[name='NAME'].ResponseBufferLimit:0"

或者,您可以直接編輯applicationHost.config并在XML元素中添加ResponseBufferLimit屬性

打開(kāi)文件 C:\Windows\System32\inetsrv\config\applicationHost.config ,注意如果你的是64位系統(tǒng),這個(gè)文件就必須用64位的編輯軟件打開(kāi),32位的軟件打開(kāi)會(huì)提示文件不存在,就用系統(tǒng)自帶的notepad記事本打開(kāi)就可以了。找到下面這一段,加入紅色的那段代碼就行了,也就是php這個(gè)handler里面加上responseBufferLimit="0"。

或者網(wǎng)站目錄下有一個(gè)web.config,如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
            <remove name="ZZphpserver_phpFastCGI" />
            <add name="ZZphpserver_phpFastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="D:\ZZphpserver\php7.3\php-cgi.exe" responseBufferLimit="0"/>
    </handlers>
  </system.webServer>
</configuration>

Nginx中flush失效的解決方法:

發(fā)現(xiàn)Nginx中,有如下的設(shè)置:

fastcgi_buffer_size 128k; fastcgi_buffers 8 128k;

問(wèn)題基本找到了,Nginx會(huì)緩沖PHP輸出的信息,當(dāng)達(dá)到128k時(shí)才會(huì)將緩沖區(qū)的數(shù)據(jù)發(fā)送給客戶端,那么我們首先需要將這個(gè)緩沖區(qū)調(diào)小,比如:

fastcgi_buffer_size 4k; fastcgi_buffers 8 4k;

并且,必須禁用gzip

gzip off;

然后,在php中,在ob_flush和flush前,輸出一段達(dá)到4k的內(nèi)容,例如:

echo str_repeat(‘ ‘, 1024*4);

到此,PHP就可以正常通過(guò)ob_flush和flush逐行輸出需要的內(nèi)容了。


測(cè)試代碼:

<?php
echo str_repeat(' ' ,4096);
for($i=0;$i<10;$i++) {
    echo $i;
    ob_flush();
    flush();
    sleep(1);
}
?>


如對(duì)本文有疑問(wèn),請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答??! 點(diǎn)擊進(jìn)入論壇

發(fā)表評(píng)論 (566人查看,0條評(píng)論)
請(qǐng)自覺(jué)遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動(dòng)的言論。
昵稱:
最新評(píng)論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時(shí)間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號(hào)