[英]How to display a message in the browser every second using PHP
有沒有人找到解決方案,如何使用 PHP 在瀏覽器中每秒顯示一條消息?
到目前為止,我一直使用以下代碼,它在運行 IIS 6 的服務器上運行良好:
<html>
<body>
<?php
for ($counter = 0; $counter <= 10; $counter++) {
echo "Message after " . $counter . " second(s)<br>";
ob_flush();
flush();
sleep(1);
}
?>
</body>
</html>
我已經看到一些帖子ob_flush
不再適用於較新的 IIS 版本。
我在 Windows 10 上使用 IIS。
在一些帖子中,我閱讀將responseBufferLimit="0"
添加到文件PHP_via_FastCGI
C:\Windows\System32\inetsrv\config\applicationHost.config
的 PHP_via_FastCGI 部分中。
但是在這個文件中,我只有以下關於fastCgi
的部分,所以我不知道如何將responseBufferLimit="0"
添加到此部分中:
<fastCgi>
<application fullPath="C:\Program Files\PHP\php-cgi.exe" />
</fastCgi>
非常感謝任何幫助。
我做了一些測試。 它仍然是一種解決方法,但更聰明一些,我認為只要沒有更好的解決方案,你就可以忍受它。
您只需添加echo str_repeat(" ", 7500000);
在代碼的最開始, ob_flush()
和flush()
會做他們應該做的事情:
<html>
<body>
<?php
echo str_repeat(" ", 7500000);
for ($counter = 0; $counter <= 10; $counter++) {
echo "Message after " . $counter . " second(s)<br>";
ob_flush();
flush();
sleep(1);
}
?>
</body>
</html>
下面的代碼絕對不是一個聰明和好的解決方案,但也許你可以將它用作一種解決方法,直到這里有人向我們展示我也非常感興趣的智能解決方案。
<html>
<body>
<?php
for ($counter = 0; $counter <= 10; $counter++) {
echo "Message after " . $counter . " second(s)";
echo str_repeat(" ", 10000000) . "<br>";
sleep(1);
}
?>
</body>
</html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.