Aktueller Standort: Startseite> Neueste Artikel> Detaillierte Erläuterung der grundlegenden Verwendung von OB_END_FLUSH: Wie man den PHP -Ausgangspuffer korrekt verwendet

Detaillierte Erläuterung der grundlegenden Verwendung von OB_END_FLUSH: Wie man den PHP -Ausgangspuffer korrekt verwendet

gitbox 2025-08-11

In PHP ist die Ausgangspufferung eine leistungsstarke Funktion, mit der Entwickler das Timing der Inhaltsausgabe steuern können. OB_END_FLUSH () ist eine der Funktionen im Zusammenhang mit Ausgabepuffer, mit dem der Ausgangspuffer geschlossen und den Inhalt des Puffer an den Browser gesendet wird. In diesem Artikel wird die grundlegende Verwendung von OB_END_FLUSH () ausführlich vorgestellt und die Verwendung von PHP -Ausgabepuffern in der tatsächlichen Entwicklung korrekt verwendet.

Was ist ein Ausgangspuffer?

Während der PHP -Ausführung werden alle Ausgabeinhalte (wie HTML, Text usw.) normalerweise direkt an den Browser gesendet. PHP bietet jedoch einen Ausgangspuffermechanismus, mit dem Entwickler Inhalte zuerst im Speicher speichern können, bis einige Funktionen vor dem Ausgang aufgerufen werden. Dieser Mechanismus hat die folgenden Vorteile:

  1. Steuerungsausgang Timing : Sie können steuern, wenn der Inhalt an den Browser gesendet wird, und die Ausgabe während der Ausführung sogar ändern.

  2. Leistung verbessern : Reduzieren Sie mehrere Sendungen von HTTP -Antwortheadern oder wiederholte E/A -Operationen, um die Leistung zu optimieren.

  3. Flexibilität : Unter bestimmten Bedingungen können Entwickler entscheiden, keinen Inhalt auszugeben oder vor der Ausgabe einige Vorgänge auszuführen, z. B. Cache oder Komprimierung.

Die Rolle von OB_end_flush ()

Der Zweck der Funktion OB_END_FLUSH () besteht darin, den Ausgangspuffer zu schließen und alles im Puffer an den Browser zu senden. Diese Funktion wird normalerweise verwendet, um einen Ausgangspuffer zu beenden, um sicherzustellen, dass der gepufferte Inhalt korrekt an den Benutzer übergeben wird.

Grammatik

 <span><span><span class="hljs-title function_ invoke__">ob_end_flush</span></span><span>();
</span></span>
  • Rückgabewert : Return true , wenn er erfolgreich ist; Rückgabe falsch , wenn der Puffer derzeit nicht geöffnet ist.

Beispiel für die Nutzung

Angenommen, Sie möchten zuerst einige Inhalte in den Ausgangspuffer in einem PHP -Skript einbinden und dann alles gleichzeitig ausgeben, nachdem das Skript ausgeführt wurde. Hier ist ein einfaches Beispiel:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Ausgangspufferung einschalten</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>();

</span><span><span class="hljs-comment">// Einige Inhalte ausgeben,Es wird jedoch nicht sofort an den Browser gesendet</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Hello, this is some buffered content!"</span></span><span>;

</span><span><span class="hljs-comment">// Ausgabepufferinhalt am Ende des Skripts ausgeben und den Puffer schließen</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_end_flush</span></span><span>();
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

Im obigen Code startet Ob_Start () den Ausgabebuffer und alle Echoausgänge werden nicht sofort an den Browser gesendet, sondern im Speicher gespeichert. Der Inhalt des Puffers wird nicht an den Browser gesendet, bis OB_END_FLUSH () aufgerufen wird.

Verwandte Funktionen

Bei Verwendung von OB_end_flush () ist es normalerweise erforderlich, das Verhalten des Ausgangspuffers besser zu steuern:

  1. ob_start () : Schalten Sie den Ausgangspuffer ein. Diese Funktion wird vor dem Senden eines Ausgabeinhalts aufgerufen.

     <span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>();
    </span></span>
  2. OB_Get_Contents () : Holen Sie sich den Inhalt des aktuellen Puffers, löschen Sie ihn jedoch nicht. Dies kann verwendet werden, um die Ausgabe für die spätere Verwendung zu debuggen oder zu erhalten.

     <span><span><span class="hljs-variable">$content</span></span><span> = </span><span><span class="hljs-title function_ invoke__">ob_get_contents</span></span><span>();
    </span></span>
  3. OB_CLEAN () : Löschen Sie den Puffer, senden Sie jedoch keinen Inhalt an den Browser. Dies bedeutet, dass Sie den gepufferten Inhalt verwerfen können.

     <span><span><span class="hljs-title function_ invoke__">ob_clean</span></span><span>();
    </span></span>
  4. OB_END_CLEAN () : Löschen Sie den Puffer und schließen Sie ihn, ähnlich wie ob_end_flush () , außer dass er den Inhalt des Puffer nicht an den Browser sendet.

     <span><span><span class="hljs-title function_ invoke__">ob_end_clean</span></span><span>();
    </span></span>

Anwendungsszenarien von Ausgangspuffern

  1. Seitenkomprimierung : Sie können den Ausgangspuffer verwenden, um den Seiteninhalt zu komprimieren und ihn dann an den Browser zu senden, wodurch die Größe und die Ladezeit der Seite effektiv verkürzt werden kann. Hier ist ein Beispiel für die Seitenkomprimierung mit ob_start () und ob_end_flush () :

     <span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>(</span><span><span class="hljs-string">"ob_gzhandler"</span></span><span>);
    </span><span><span class="hljs-comment">// Seitenausgabeinhalt</span></span><span>
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"This is a test page."</span></span><span>;
    </span><span><span class="hljs-title function_ invoke__">ob_end_flush</span></span><span>();  </span><span><span class="hljs-comment">// Komprimieren und Ausgang</span></span><span>
    </span></span>

    Im obigen Code wird die Funktion OB_GZHandler verwendet, um die GZIP -Komprimierung für den Ausgangsinhalt durchzuführen.

  2. Verzögerte Ausgabe : Wenn Sie während der Ausführung von PHP -Skripten einige Inhalte (z. B. Berechnungsergebnisse, Generieren von Berichten usw.) verarbeiten müssen. Sie möchten jedoch nicht, dass der Benutzer den Zwischenprozess anzeigt, können Sie den Ausgangspuffer verwenden, um den Inhalt zu speichern, bis die gesamte Verarbeitung abgeschlossen ist und ihn erneut ausgibt.

  3. Vermeiden Sie Headerinformationskonflikte : In PHP müssen die HTTP -Header -Informationen vor dem Senden einer Ausgabe (z. B. die Funktion Header () ) festgelegt werden. Wenn vor dem Senden der Header -Informationen eine Ausgabe vorliegt, wird ein Fehler verursacht. Dieses Problem kann vermieden werden, indem der Puffer ausgegeben wird. Sie können den Inhalt zuerst pufferen und dann die Header -Informationen nach dem Einstellen ausgeben.

     <span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>();
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"This is some content"</span></span><span>;
    </span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">"Location: another_page.php"</span></span><span>);  </span><span><span class="hljs-comment">// Umleiten</span></span><span>
    </span><span><span class="hljs-title function_ invoke__">ob_end_flush</span></span><span>();  </span><span><span class="hljs-comment">// Ausgabeinhalt</span></span><span>
    </span></span>

Dinge zu beachten

  • Ausgangspuffer können in einigen Szenarien einen erhöhten Speicherverbrauch verursachen, insbesondere wenn der Inhalt des Puffers groß ist. Versuchen Sie in diesem Fall, zu viel Inhalt zu vermeiden.

  • Ohne OB_END_FLUSH () oder OB_END_CLEAN () zu rufen, löscht PHP den Ausgangspuffer am Ende des Skripts automatisch und sendet den Inhalt an den Browser. Dies ist jedoch keine empfohlene Praxis, insbesondere in längeren Skripten oder Szenarien, die eine Umleitung beinhalten.

Zusammenfassen

OB_END_FLUSH () ist eine wichtige Funktion im PHP -Ausgangspufferbetrieb. Es schließt nicht nur den Ausgangspuffer, sondern stellt auch sicher, dass der gepufferte Inhalt korrekt in den Browser ausgegeben wird. Indem Entwickler rational mit dem Ausgangspuffer rational unter Verwendung der Ausgangspuffer flexibler steuern, die Leistung verbessern, Fehler vermeiden und sogar die Ladegeschwindigkeit der Seiten optimieren.

Wenn Sie diese grundlegenden Vorgänge beherrschen, können Sie die Funktion der Ausgabepuffer während der PHP -Entwicklung besser nutzen und die Programmsteuerbarkeit und Leistung verbessern.