Aktueller Standort: Startseite> Neueste Artikel> Was sind die Anforderungen für OB_Clean () und verwenden Sie dann ob_flush ()? Welche Details sollten bei der gemeinsamen Verwendung beachtet werden?

Was sind die Anforderungen für OB_Clean () und verwenden Sie dann ob_flush ()? Welche Details sollten bei der gemeinsamen Verwendung beachtet werden?

M66 2025-07-04

1. Was ist Ausgangspufferung?

Ausgabepufferung bedeutet, dass beim Ausführen eines Skripts der Ausgabeinhalt im Speicherpuffer gespeichert wird, wenn PHP ausgeführt wird. PHP sendet diesen Inhalt erst an den Browser, wenn das Skript ausgeführt wird. Die Ausgangspufferung kann den Ausgangszeitpunkt effektiv steuern und unnötige Ausgabe- und Beschleunigungsladen reduzieren.

PHP liefert mehrere Funktionen, die sich auf die Ausgangspufferung beziehen, unter denen obs_clean () und ob_flush () die beiden am häufigsten verwendeten sind.


2. Die Rolle von OB_Clean () und ob_flush ()

1. OB_Clean () Funktion

Der Zweck von ob_clean () besteht darin, den Inhalt im aktuellen Ausgangspuffer zu löschen, aber er schließt den Puffer nicht. Wenn Sie die Ausgabe beim Erstellen ändern oder neu verarbeiten möchten, können Sie OB_Clean () verwenden, um den aktuellen gepufferten Inhalt zu löschen. Zum Beispiel:

 ob_start(); // Ausgangspufferung starten
echo "Hello, world!";
ob_clean(); // Löschen Sie den Puffer
echo "New content"; // Neue Inhalte ausgeben
ob_end_flush(); // Ausgabepufferinhalt in den Browser ausgeben

Im obigen Code wird Ob_Clean () Hallo, Welt löschen! so dass die endgültige Ausgabe neuer Inhalte ist.

2. Funktion ob_flush ()

Der Zweck von ob_flush () besteht darin, den Inhalt des aktuellen Puffers an den Browser zu senden, aber der Puffer wird nicht gelöscht. Es "eingefroren" den Inhalt im Puffer zum Browser, behält aber dennoch den Inhalt des Puffers für die nachfolgende Verwendung bei. Zum Beispiel:

 ob_start();
echo "This is buffered.";
ob_flush(); // Senden Sie Inhalte an den Browser,但不Löschen Sie den Puffer
echo "Next output.";
ob_end_flush(); // Schließlich alle Pufferinhalte in den Browser ausgeben

OB_FLUSH () wird häufig verwendet, um den Inhalt in Echtzeit zu aktualisieren. Wenn Sie beispielsweise bei der Behandlung großer Dateien -Downloads oder -Streaming einen Teil des Inhalts an den Client senden, ohne auf die gesamte Datei zu warten.


3.. Die Vorsichtsmaßnahmen bei der Verwendung von ob_clean () und ob_flush () zusammen

ob_clean () und ob_flush () können zusammen verwendet werden, aber ihre Auftrags- und Nutzungsszenarien benötigen besondere Aufmerksamkeit:

  1. Zuerst klären und dann erfrischen:
    Wenn Sie die aktuelle Ausgabe im Puffer löschen und sofort neue Inhalte an den Browser senden möchten, können Sie diese beiden Funktionen wie folgt verwenden:

     ob_start(); // Ausgangspufferung starten
    echo "Old content";
    ob_clean(); // Löschen Sie den Puffer
    echo "New content"; // Neuer Inhalt
    ob_flush(); // 将Neuer Inhalt发送到浏览器
    

    Diese Methode eignet sich für Szenarien, in denen Sie nicht alte Inhalte in die Ausgabe einbeziehen und die Ausgabe sofort in den Browser aktualisieren möchten.

  2. Vermeiden Sie unordentliche Puffer:
    Wenn OB_CLEAN () nach Verwendung von OB_FLUSH () nicht ausgeführt wird, kann im Puffer eine unverarbeitete Ausgabe beibehalten werden. Insbesondere wenn OB_FLUSH () mehrmals aufgerufen wird, kann dies zu einer Duplikation oder Verwirrung im Ausgangsinhalt führen, was das Endergebnis beeinflusst.

  3. VERWALTIGUNGSBEWERNUNG DER MEHRSCHAFTEN AUF OB_FLUSH () :
    In einigen Szenarien, wie z. B. langjährige Skripte (z. B. Hochladen von Dateien oder Downloads), müssen Sie möglicherweise während der Verarbeitung OB_FLUSH () aufrufen, um den Inhalt des Puffers in Echtzeit zu aktualisieren. Stellen Sie bei der Verwendung sicher, dass jede Aktualisierung erforderlich ist und nicht mit OB_Clean () in Konflikt steht.


4.. Dinge zu beachten, wenn sie in Kombination verwendet werden

  1. Um sicherzustellen, dass der Puffer eingeschaltet ist:
    Stellen Sie vor der Verwendung von OB_CLEAN () oder OB_FLUSH () sicher, dass die Ausgabepufferung aktiviert ist ( ob_start () ). Andernfalls führt das Aufrufen dieser Funktionen zu einer falschen oder ungültigen Operation.

     ob_start(); // Puffer muss zuerst aktiviert werden
    ob_clean();
    
  2. Bei vernünftiger Verwendung von URLs:
    Wenn Sie eine URL in Ihren Code einfügen müssen (z. B. eine URL per Echo ausgeben), können Sie sicherstellen, dass der Domänenname -Teil der URL M66.NET verwendet, um die Konsistenz beizubehalten. Zum Beispiel: