Die Umleitung von Seiten ist bei der Entwicklung von PHP -Anwendungen ein üblicher Betrieb. Normalerweise verwenden Entwickler die Header () -Funktion, um die Seitenumleitung von Seiten zu implementieren. Vor dem Umleiten jedoch, wenn die Seite etwas ausgibt (z. B. HTML -Tags oder Fehlermeldungen), wird die Weiterleitung oder ein unerwartetes Verhalten fehlschlagen. Um sicherzustellen, dass die Umleitung von Seiten reibungslos ist und unnötige Ausgangsstörungen vermeiden, ist die Verwendung der Funktion OB_Clean () besonders wichtig.
In PHP ist OB_Clean () Teil des Ausgangspuffers (Ausgangspufferung). Standardmäßig speichert PHP die Ausgabe der Seite in einen Puffer, anstatt ihn direkt an den Browser zu senden. Mit diesem Puffermechanismus können Entwickler die Ausgabe ändern oder reinigen, bevor Sie den tatsächlichen Inhalt senden. Der Zweck von ob_clean () besteht darin, den Inhalt im Ausgangspuffer zu löschen, aber den Ausgangspuffer nicht schließt. Das heißt, der Puffer existiert noch, sodass nachfolgende Inhalte weiterhin erfasst werden können.
Wenn PHP Ausgabepufferung ausführt, werden alle Inhalte (einschließlich HTML -Tags, Fehlermeldungen, Leerzeichen usw.) im Puffer gespeichert. Wenn Sie Header () -Umleitung durchführen, existiert der Inhalt bereits im Puffer, PHP wird eine Warnung werfen, da beim Senden von HTTP -Headerinformationen nichts ausgegeben werden kann. Um dies zu vermeiden, ist es eine kluge Wahl, OB_Clean () zu räumen, um den Puffer zu löschen.
Durch die Löschen des Puffers stellen Sie sicher, dass beim Aufrufen von Header () Umleitung keine unerwartete Ausgangsmischung vorliegt und dass der HTTP -Header korrekt gesendet werden kann.
Die Verwendung von ob_clean () ist sehr einfach. Normalerweise rufen Entwickler diese Funktion auf, um sicherzustellen, dass der Puffer vor dem Umleiten der Seite gelöscht wird. Zum Beispiel:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Aktivieren Sie die Ausgangspufferung</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_start</span></span><span>();
</span><span><span class="hljs-comment">// Ihr Ausgabescode(Zum Beispiel HTML)</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<p>Hier sind einige Ausgangsinhalte。</p>"</span></span><span>;
</span><span><span class="hljs-comment">// Löschen Sie den Puffer</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ob_clean</span></span><span>();
</span><span><span class="hljs-comment">// Seitenumleitung durchführen</span></span><span>
</span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">"Location: http://example.com"</span></span><span>);
</span><span><span class="hljs-keyword">exit</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Schalten Sie die Ausgangspufferung ein : Ob_Start () schaltet die Ausgangspufferung ein. Jegliche nachfolgende Ausgabe (einschließlich Echo und Druck ) wird nicht sofort an den Browser gesendet, sondern im Puffer gespeichert.
Ausgabe etwas Inhalt : Im Beispiel verwenden wir Echo , um einige HTML -Inhalte auszugeben.
Löschen Sie den Puffer : Nach dem Aufrufen von ob_clean () wird der Inhalt im Puffer gelöscht, der Puffermechanismus ist jedoch noch aktiviert, sodass er nachfolgende Operationen nicht beeinträchtigt.
Seitenumleitung : Verwenden Sie schließlich Header (), um den Umleitungsvorgang der Seitenumleitung durchzuführen, und der Benutzer wird auf die neue Seite gerichtet.
In der tatsächlichen Entwicklung wird OB_Clean () normalerweise verwendet, um sicherzustellen, dass die Sende von HTTP -Headern vor der Umleitung keine unnötige Ausgabe stellt, insbesondere in einigen komplexen Programmen, bei denen die Seitungsgenerierung ausgewiesen wird, die mehrere Teile umfassen können, z. B.:
Vorlagewiedergabe
Dynamisch generierte Daten
Das Ergebnis der externen API
Ohne ordnungsgemäße Ausgangskontrolle können Entwickler auf unvorhersehbare Ergebnisse stoßen. Daher kann das Aufrufen von ob_clean () eine normale Umleitung und ein stabiles Verhalten der Seite sicherstellen, bevor Operationen wie Header () und SetCookie () ausgeführt werden.
Kurz gesagt, bei der Umleitung von Seiten ist es eine gute Programmiergewohnheit, Ob_Clean () zu rufen. Es kann Ihnen helfen, redundante Inhalte im Puffer zu löschen und die Auswirkungen auf das Senden von HTTP -Headern zu vermeiden. Auf diese Weise können Sie sicherstellen, dass das Umleitungsverhalten der Anwendung nicht durch unnötige Ausgabe gestört wird und die Stabilität und Zuverlässigkeit der Seite aufrechterhalten wird. Daher ist es sehr wichtig, Ausgangspufferreinigungsfunktionen (wie OB_Clean () ) an jedem Ort zu verwenden, an dem HTTP -Headeroperationen erforderlich sind (z. B. Umleitung, Einstellen von Cookies usw.).