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)文章
mysql 查詢指定日期時間內(nèi)sql語句實現(xiàn)原理與代碼
查詢指定日期時間內(nèi)sql語句實現(xiàn)原理:如果是月份就是當前的月減去你要統(tǒng)計的時間如我要查詢數(shù)據(jù)庫中從今天起往前三個月的所有記錄2012-12-12
php+MySQL實現(xiàn)登錄時驗證登錄名和密碼是否正確
本文實例實現(xiàn)登錄時去數(shù)據(jù)庫校驗用戶輸入的登錄名和密碼是否正確,這篇文章主要介紹了php+MySQL實現(xiàn)登錄時校驗登錄名和密碼是否正確,感興趣的小伙伴們可以參考一下2016-05-05
PHP獲取表單textarea數(shù)據(jù)中的換行問題
閑來無事,在網(wǎng)上看到一篇關(guān)于php表單轉(zhuǎn)換textarea換行符的文章,看完后,根據(jù)以往經(jīng)驗,感覺上這篇文章中的一些信息并不準確...于是便自己親自對php獲取表單數(shù)據(jù)中的換行符問題進行研究2010-09-09

