溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php flush無(wú)效,IIS7下php怎么實(shí)時(shí)輸出

發(fā)布時(shí)間:2021-06-29 10:22:37 來(lái)源:億速云 閱讀:149 作者:chen 欄目:開(kāi)發(fā)技術(shù)

本篇內(nèi)容介紹了“php flush無(wú)效,IIS7下php怎么實(shí)時(shí)輸出”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

在一個(gè)比較費(fèi)時(shí)的操作中,想把操作記錄在瀏覽器上實(shí)時(shí)顯示出來(lái),用到了flush(),把緩沖中的內(nèi)容發(fā)送到瀏覽器。但在iis7里面用fastcgi模式配置的php怎么都實(shí)現(xiàn)不了,結(jié)果總是一起顯示出來(lái)。

for ($i=10; $i>0; $i--)
{
  echo $i.'<br />';
  @ob_flush();
  flush();
  sleep(1);
}

上面的代碼在IIS的默認(rèn)設(shè)置下是無(wú)法逐漸顯示結(jié)果的。解決辦法如下:

打開(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"。

復(fù)制代碼 代碼如下:


<handlers accessPolicy="Read, Script">
<add name="PHP_via_FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="E:\PHP\php-cgi.exe" resourceType="Either" responseBufferLimit="0" />

現(xiàn)在你可以試一下,如果還是不行的話把php.ini里面的output_buffering = Off。

最后一點(diǎn)很重要,在不同的瀏覽器中,也用有不一樣的結(jié)果。IE里面應(yīng)該沒(méi)什么問(wèn)題了,如果是用chrome的話,每個(gè)echo出來(lái)的內(nèi)容必須帶有html,不然也是不行的,還有如果echo的內(nèi)容太短也是實(shí)現(xiàn)不了這個(gè)效果的,可以在代碼前先輸出一段空格,如:echo str_pad(' ', 1050); chrome好像要先輸出1000多個(gè)字符才會(huì)有這個(gè)效果,不行的話自己多嘗試。

“php flush無(wú)效,IIS7下php怎么實(shí)時(shí)輸出”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI