簡體   English   中英

如何使用 PHP 每秒在瀏覽器中顯示一條消息

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM