ホームページ  >  記事  >  バックエンド開発  >  PHPヘッダージャンプの詳細な分析

PHPヘッダージャンプの詳細な分析

高洛峰
高洛峰オリジナル
2016-12-20 11:06:091540ブラウズ

この関数についてはよく知りませんが、通常は文字エンコーディングやページジャンプの設定に使用されます。エンコーディングの設定については詳しく説明しません。

以前は、ヘッダー ジャンプに関しては、ジャンプする前に出力が厳しく禁止されていることだけを知っていました。そうしないと何か問題が発生しますが、今日、ヘッダーについてもう一度知るきっかけとなる投稿を目にしました:

1。ヘッダーの前に出力は必要ありません

しかし、多くの場合、ヘッダーの前にすでに多くのものを出力していますが、この時点で再びヘッダーを使用すると、明らかに間違っています。関連する出力を最初にサーバー側に保存し、適切な機会を待つため、今のように 1 つの文を実行するのではなく、1 つの文を出力し、ヘッダー ステートメントが見つかった場合は、エラーを報告することしかできません。

具体的なステートメントは次のとおりです: ob_start(); ob_end_clean(); ob_flush();....

それ以外の場合は、引き続き終了します。ブラウザ側では対応するデータが表示されませんが、パケット キャプチャ分析を実行すると、次のステートメントも実行されていることがわかります。そして、それはブラウザクライアントに送信されますが、ブラウザによって HTML として実行されるわけではありません (ブラウザはヘッダーを実行し、リダイレクト操作を実行します)。

したがって、標準的な使用方法は次のとおりです:

ob_start();

....

if ( something ){

ob_end_clean();

header("Location: yourlocation" ; File

output_handler =mb_output_handler

またはoutput_handler =on

出力制御機能を使用すると、スクリプト内のデータの出力を自由に制御できます。特にデータ出力後にファイルヘッダーを出力したい場合に非常に便利です。出力制御関数は、header() または setcookie() を使用して送信されるファイル ヘッダー情報には影響せず、echo() および PHP コードと同様のデータ ブロックにのみ影響します。

PHP ヘッダージャンプの詳細な分析に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。