php flush無效,IIS7下php實時輸出的方法
在一個比較費時的操作中,想把操作記錄在瀏覽器上實時顯示出來,用到了flush(),把緩沖中的內(nèi)容發(fā)送到瀏覽器。但在iis7里面用fastcgi模式配置的php怎么都實現(xiàn)不了,結(jié)果總是一起顯示出來。
for ($i=10; $i>0; $i--) { echo $i.'<br />'; @ob_flush(); flush(); sleep(1); }
上面的代碼在IIS的默認設(shè)置下是無法逐漸顯示結(jié)果的。解決辦法如下:
打開文件 C:\Windows\System32\inetsrv\config\applicationHost.config ,注意如果你的是64位系統(tǒng),這個文件就必須用64位的編輯軟件打開,32位的軟件打開會提示文件不存在,就用系統(tǒng)自帶的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" />
現(xiàn)在你可以試一下,如果還是不行的話把php.ini里面的output_buffering = Off。
最后一點很重要,在不同的瀏覽器中,也用有不一樣的結(jié)果。IE里面應(yīng)該沒什么問題了,如果是用chrome的話,每個echo出來的內(nèi)容必須帶有html,不然也是不行的,還有如果echo的內(nèi)容太短也是實現(xiàn)不了這個效果的,可以在代碼前先輸出一段空格,如:echo str_pad(' ', 1050); chrome好像要先輸出1000多個字符才會有這個效果,不行的話自己多嘗試。
相關(guān)文章
fetchAll()與mysql_fetch_array()的區(qū)別詳解
本篇文章是對fetchAll()與mysql_fetch_array()的區(qū)別進行了詳細的分析介紹,需要的朋友參考下2013-06-06PHP實現(xiàn)的各種進制相互轉(zhuǎn)換功能小工具示例
這篇文章主要介紹了PHP實現(xiàn)的各種進制相互轉(zhuǎn)換功能小工具,涉及php常見的二進制、八進制、十六進制等相互轉(zhuǎn)換操作實現(xiàn)技巧,需要的朋友可以參考下2018-03-03PHP構(gòu)造函數(shù)與析構(gòu)函數(shù)用法示例
這篇文章主要介紹了PHP構(gòu)造函數(shù)與析構(gòu)函數(shù)用法,簡單講述php中構(gòu)造函數(shù)與析構(gòu)函數(shù)的定義與使用方法,并結(jié)合實例形式演示了構(gòu)造函數(shù)與析構(gòu)函數(shù)的執(zhí)行順序,需要的朋友可以參考下2016-09-09php編程實現(xiàn)簡單的網(wǎng)頁版計算器功能示例
這篇文章主要介紹了php編程實現(xiàn)簡單的網(wǎng)頁版計算器功能,涉及php簡單表單操作與數(shù)值運算相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2017-04-04PHP 實現(xiàn)多服務(wù)器共享 SESSION 數(shù)據(jù)
稍大一些的網(wǎng)站,通常都會有好幾個服務(wù)器,每個服務(wù)器運行著不同功能的模塊,使用不同的二級域名,而一個整體性強的網(wǎng)站,用戶系統(tǒng)是統(tǒng)一的,即一套用戶名、密碼在整個網(wǎng)站的各個模塊中都是可以登錄使用的。2009-08-08