2016-02-06 58 views
2

我想下面使用此代碼顯示實時PHP程序的輸出,但它不工作,它不顯示在實時過程中,只顯示最後一次輸出沖洗不工作

echo "Start..."; 

for ($i = 0; $i<20; $i++){ 
    echo $i; 
    ob_flush(); 
    flush(); 
    sleep(1); 
} 

echo "Done!"; 
ob_end_flush(); 
exit; 
+0

通過最終輸出,你的意思是它一次顯示一切(所有的數字)? –

+0

檢查這個,你的答案在這裏: - http://stackoverflow.com/questions/2837006/ob-start-and-ob-flush-doesnt-work –

+0

@RoyFalk是... – Mohamed

回答

0

Flush位於PHP一側。但是,一些Web服務器有自己的輸出緩存。


IIS例如有ResponseBufferLimit選項。直到他們所有的初始DOM內容(不包括像圖像等不同的資源),除非頁面是非常大的

%windir%\system32\inetsrv\appcmd.exe set config /section:handlers "/[name='PHP_via_FastCGI'].ResponseBufferLimit:0" 
0

大多數瀏覽器nowdays不會顯示該頁面。我認爲這是爲了確保在顯示任何內容之前所有的CSS規則都存在。 Heres what the manual says

0

你的問題不清楚。我以爲你直接運行PHP。 如果你通過瀏覽器運行PHP,這是行不通的。 通過瀏覽器PHP將運行整個程序,然後服務器頁面。它沒有任何更新HTML的功能。 你通常使用ajax來做到這一點。

我假設您的代碼段實際上是這樣的:

<!DOCTYPE html> 
<html> 
<body> 

<?php 
    echo "My first PHP script!"; 
?> 

</body> 
</html> 

如果你想這樣做在PHP中,你必須弄清楚如何直接運行它。嘗試https://stackoverflow.com/a/9520125/5276890