Heim > Artikel > Backend-Entwicklung > Detaillierte Analyse des PHP-Header-Sprungs
Ich weiß nicht viel über diese Funktion. Sie wird normalerweise zum Festlegen der Zeichenkodierung oder des Seitensprungs verwendet. Ich werde nicht näher auf die Einstellung der Kodierung eingehen.
Wusste ich früher bei Header-Sprüngen nur, dass jede Ausgabe vor dem Springen strikt verboten ist, sonst kommt es zu einem Fehler, so habe ich heute einen Beitrag gesehen, der mich Header-Sprünge wieder näher gebracht hat:
1. Header erforderlich, bevor es keine Ausgabe gibt
Aber oft haben wir viele Dinge vor dem Header ausgegeben, wenn der Header zu diesem Zeitpunkt erneut verwendet wird Hier haben wir das Konzept von ob aktiviert, was bedeutet, dass der Server zunächst die entsprechende Ausgabe speichert und auf die entsprechende Gelegenheit wartet, bevor er sie ausgibt, anstatt wie jetzt einen Satz auszuführen und einen Fehler auszugeben findet die Header-Anweisung.
Die spezifischen Anweisungen sind: ob_start(); ob_end_clean();ob_flush();......
2. ), müssen Sie
rechtzeitig beenden, sonst wird die Ausführung fortgesetzt. Obwohl die entsprechenden Daten nicht auf der Browserseite angezeigt werden, werden Sie bei der Durchführung einer Paketerfassungsanalyse auch die folgenden Anweisungen sehen hingerichtet. Und es wird an den Browser-Client gesendet, aber vom Browser nicht als HTML ausgeführt (der Browser führt den Header aus und führt den Umleitungsvorgang aus).
Die Standardverwendungsmethode lautet also:
ob_start();
.....
if ( Something ){
ob_end_clean();
header("Location: yourlocation");
exit;
else{
. .........
ob_flush(); //kann weggelassen werden
Wenn Sie eine Ausgabe vor dem Header haben möchten, können Sie PHP ändern .ini-Datei
output_handler =mb_output_handler
oder Output_handler =on
Mit der Output Control-Funktion können Sie die Ausgabe von Daten im Skript frei steuern . Dies ist sehr nützlich, insbesondere wenn Sie den Dateiheader nach der Datenausgabe ausgeben möchten. Die Ausgabesteuerungsfunktion hat keinen Einfluss auf die mit header() oder setcookie() gesendeten Datei-Header-Informationen, sondern nur auf die Datenblöcke ähnlich echo() und PHP-Code.
Weitere Artikel zur detaillierten Analyse von PHP-Header-Sprüngen finden Sie auf der chinesischen PHP-Website!