我想下面使用此代碼顯示實時PHP程序的輸出,但它不工作,它不顯示在實時過程中,只顯示最後一次輸出沖洗不工作
echo "Start...";
for ($i = 0; $i<20; $i++){
echo $i;
ob_flush();
flush();
sleep(1);
}
echo "Done!";
ob_end_flush();
exit;
我想下面使用此代碼顯示實時PHP程序的輸出,但它不工作,它不顯示在實時過程中,只顯示最後一次輸出沖洗不工作
echo "Start...";
for ($i = 0; $i<20; $i++){
echo $i;
ob_flush();
flush();
sleep(1);
}
echo "Done!";
ob_end_flush();
exit;
Flush位於PHP
一側。但是,一些Web服務器有自己的輸出緩存。
的IIS
例如有ResponseBufferLimit
選項。直到他們所有的初始DOM內容(不包括像圖像等不同的資源),除非頁面是非常大的
%windir%\system32\inetsrv\appcmd.exe set config /section:handlers "/[name='PHP_via_FastCGI'].ResponseBufferLimit:0"
大多數瀏覽器nowdays不會顯示該頁面。我認爲這是爲了確保在顯示任何內容之前所有的CSS規則都存在。 Heres what the manual says
你的問題不清楚。我以爲你直接運行PHP。 如果你通過瀏覽器運行PHP,這是行不通的。 通過瀏覽器PHP將運行整個程序,然後服務器頁面。它沒有任何更新HTML的功能。 你通常使用ajax來做到這一點。
我假設您的代碼段實際上是這樣的:
<!DOCTYPE html>
<html>
<body>
<?php
echo "My first PHP script!";
?>
</body>
</html>
如果你想這樣做在PHP中,你必須弄清楚如何直接運行它。嘗試https://stackoverflow.com/a/9520125/5276890。
通過最終輸出,你的意思是它一次顯示一切(所有的數字)? –
檢查這個,你的答案在這裏: - http://stackoverflow.com/questions/2837006/ob-start-and-ob-flush-doesnt-work –
@RoyFalk是... – Mohamed