Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Analyse des PHP-Header-Sprungs

Detaillierte Analyse des PHP-Header-Sprungs

高洛峰
高洛峰Original
2016-12-20 11:06:091540Durchsuche

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!

Stellungnahme:
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