我試圖熟悉PHP的flush()函數,我正在做一個項目,我自己寫了幾個腳本,並將它們上傳到我自己的一些webspace;但似乎沒有一個人工作。我從PHP.net評論拿起一個下方,試了一下:PHP flush()顯然適用於我的Linux機器,但不適用於我的Windows機器?
<?php
header('Content-type: text/html; charset=utf-8');
echo 'Begin ...<br />';
for($i = 0 ; $i < 10 ; $i++)
{
echo $i . '<br />';
flush();
sleep(1);
}
echo 'End ...<br />';
顯然,腳本仍然不能正常工作。
然後我讀的評價是說:
如果你調用使用ob_flush()和flush()和仍然沒有得到緩衝液沖洗這可能是因爲一些殺毒軟件(Panda在這種情況下)持有直到頁面完成加載,然後將其發送到瀏覽器。
因此,我決定請求在我使用Linux(Ubuntu 12.04)的計算機上的網頁,因爲它沒有安裝任何防病毒軟件;它完美的工作!
我不知道這是否與防病毒軟件有關?或者在Windows中阻止flush()達到預期目的的其他一些奇怪機制,我在兩臺機器上都使用相同的瀏覽器(Firefox 14.0.1),所以我懷疑它可能是這樣。所以我想我真正的問題是:有沒有人知道反病毒軟件防止flush()實現其預期目的(因爲我似乎無法找到任何關於它的在線)?如果是這樣,有什麼方法可以解決它嗎?
編輯:只是爲了清理,我肯定這不是服務器端,我有一個運行Linux的外部Web服務器,我不是在Linux或Windows機器上本地託管這些腳本。編輯2:我在Linux筆記本電腦上的一個朋友家中嘗試過這種方法,我設法讓它在我的房子裏工作,奇怪的是,同花順的代碼也沒有在他們家工作(相反,它只花了很長時間來加載和所有這一切都出來了)這是奇怪的,因爲它在我家裏的這檯筆記本電腦上工作,我不確定路由器是否與flush()函數有關(我真的無法在網絡上找到任何有關),因爲那是我能想到的唯一可能會干擾它的事情。
否則我沒有取得任何進展,試圖獨自解決這個問題,這絕對與服務器端無關,這很奇怪,因爲我似乎發現大多數信息都是關於服務器是問題的時候flush()函數不起作用:/
巧合的是,我也試過在運行諾頓(而不是AVG)的PC上運行它,但它的工作原理並不完全是100%。
我知道這絕對是客戶端,而不是服務器端,雖然在Linux中的Firefox中呈現相同的頁面,但在Windows下不好。這導致我認爲這也不是瀏覽器相關的問題。 。 。這似乎消除了該報價中的所有解釋:/ – Sean 2012-08-05 13:41:39
@SeanDunwoody:你怎麼知道它不是服務器端?服務器是每個操作系統下的不同程序。瀏覽器也一樣。 – Jon 2012-08-05 13:45:04
不,對不起,我認爲你誤解了,我有一臺服務器託管這個正在運行的Linux,我不在任何一臺機器上本地託管這個 – Sean 2012-08-05 13:46:00