IIS7下PHP即時輸出使用flush無效的解決方案

來源:互聯網
上載者:User
本文主要介紹了php flush無效,IIS7下php即時輸出的方法,需要的朋友可以參考下。希望對大家有所協助。

在一個比較費時的操作中,想把操作記錄在瀏覽器上即時顯示出來,用到了flush(),把緩衝中的內容發送到瀏覽器。但在iis7裡面用fastcgi模式配置的php怎麼都實現不了,結果總是一起顯示出來。

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

上面的代碼在IIS的預設設定下是無法逐漸顯示結果的。解決辦法如下:

開啟檔案 C:\Windows\System32\inetsrv\config\applicationHost.config ,注意如果你的是64位系統,這個檔案就必須用64位的編輯軟體開啟,32位的軟體開啟會提示檔案不存在,就用系統內建的notepad記事本開啟就可以了。找到下面這一段,加入紅色的那段代碼就行了,也就是php這個handler裡面加上responseBufferLimit="0"。

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

現在你可以試一下,如果還是不行的話把php.ini裡面的output_buffering = Off。

最後一點很重要,在不同的瀏覽器中,也用有不一樣的結果。IE裡面應該沒什麼問題了,如果是用chrome的話,每個echo出來的內容必須帶有html,不然也是不行的,還有如果echo的內容太短也是實現不了這個效果的,可以在代碼前先輸出一段空格,如:echo str_pad(' ', 1050); chrome好像要先輸出1000多個字元才會有這個效果,不行的話自己多嘗試。

相關推薦:

php IIS日誌分析搜尋引擎爬蟲記錄程式_php執行個體

PHP IIS6.0配置偽靜態無效求解決,該如何處理

windows server 2008 php IIS 使用 uploadify上傳大檔案 無法上傳解決方案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.