PHP kann mit ob_flush nicht jede Sekunde eine Prinzipanalyse ausgeben

高洛峰
Freigeben: 2023-03-04 06:42:01
Original
1044 Leute haben es durchsucht

Das Beispiel in diesem Artikel beschreibt das Prinzip, dass PHP bei Verwendung von ob_flush nicht jede Sekunde ausgeben kann. Teilen Sie es als Referenz mit allen. Die spezifische Analyse lautet wie folgt:

Implementierungsfunktion:

Der Browser gibt jede Sekunde eine Zahl aus.

php.ini ist konfiguriert als:

Version 5.3

implicit_flush = off
output_buffering = off

Sonstiges: Überprüfen Sie, ob Output_buffering aktiviert ist , Sie können:

var_dump(ini_get('output_buffering'));
Nach dem Login kopieren

Okay, schauen wir uns diesen Code noch einmal an:

<?php
  $i = 3;
  ob_start();
  while ($i--) {
    echo $i, "<br />";
    ob_flush();
    flush();
    sleep(1);
  }
  ob_end_clean();
?>
Nach dem Login kopieren

Aber warum: Dieser Code kann nicht jede Sekunde verwendet werden. Was ist mit der Ausgabe? ?

Ursachenanalyse:

Apache-Funktionsprinzip: Wenn Sie auf eine Adresse zugreifen (eine Anfrage senden), startet Apache PHP, dann erfolgt die PHP-Ausführung auf Seitenebene, das heißt, wenn eine ausführbare Datei vorhanden ist Code: Nachdem alles ausgeführt wurde, wird es an Apache geworfen, und Apache wird dann an den Browser geworfen, um die Ergebnisse anzuzeigen

Wie erreicht man das?

Was ist der Unterschied, wenn die CLI die Ergebnisse anders anzeigt?

linux cmd:

php5 test.php

Direkt von PHP ausgeführt, ohne Apache oder Webservice zu nutzen, können Sie Folgendes erreichen:

<?php
  $i = 3;
  while ($i--) {
    echo $i, "\n";
    sleep(1);
  }
  ob_end_clean();
?>
Nach dem Login kopieren

Ich hoffe, dass dieser Artikel für das PHP-Programmierdesign aller hilfreich sein wird.

Weitere relevante Artikel zur prinzipiellen Analyse von PHP mit ob_flush, das nicht jede Sekunde ausgegeben werden kann, finden Sie auf der chinesischen PHP-Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage