関数ヘッダー - ページジャンプ
関数ヘッダー関数:
ページジャンプ
http ヘッダー情報
ヘッダー情報には多くの機能がありますが、最も重要なものは次のとおりです:
1. ジャンプ
ブラウザーがヘッダー情報の Location: xxxx を受け取ると、自動的にジャンプします。 xxxx が指す URL アドレスにこれは、js でジャンプを記述するのと似ています。ただし、このジャンプはブラウザのみが認識しており、コンテンツに何かがあるかどうかに関係なく、ユーザーはそれを見ることができません。
例: header("Location: http://www.example.com/");
2. Web ページのコンテンツを指定します
ヘッダー情報が次のように指定されている場合は、同じ XML ファイル: Content-type: application/ xml、ブラウザは XML ファイル形式に従ってそれを解析します。ただし、ヘッダー情報が Content-type: text/xml の場合、ブラウザーは保存されたテキストとして解析します。 (ブラウザは拡張子に従ってファイルを解析しません)
例: header('Content-type: application/pdf');
3. 添付ファイル
いくつかの Web サイトからダウンロードすることがあることに気づいたかどうかはわかりませんが、ダウンロードをクリック 接続後、ブラウザで添付ファイルを Web ページとして開くと、表示される文字がすべて文字化けしてしまいました。この問題はヘッダー情報にも関係しています。ブラウザは Content-type に基づいて開くか保存するかを決定するため、場合によっては誤った判断をしてしまうことがあります (主に Web サイト設計者が Content-type を書き忘れることが原因です)。実際、コンテンツが添付ファイルであり、保存する必要があることを指定する別の方法があります。これは、 Content-Disposition:attachment; filename="
例: header('Content-Disposition:attachment; filename=)
改良リクエスト
4×× クライアント エラー
5×× サーバー エラー
構文:
header(string,replace,http_response_code)
パラメータ
文字列: 必須。送信するヘッダー文字列を指定します。
交換: オプション。このヘッダーが前のヘッダーを置き換えるか、2 番目のヘッダーを追加するかを示します。デフォルトは true (置換) です。 false (同じタイプの複数のヘッダーを許可します)。
http_response_code: オプション。 HTTP 応答コードを指定された値に強制します。 (PHP 4 以降で利用可能)
例 1:
Web ページをリダイレクトする
header("Location: http://www.example.com/");
exit;
?>
例 2:
Forceユーザーは、クライアント側のキャッシュを使用するのではなく、このページにアクセスするたびに最新のデータを取得できます。
// すでに過ぎた日付である限り、このページの有効期限 (グリニッジ標準時で表現) をブラウザーに伝えます。
header("Expires:Mon,26 Jul 1970 05:00:00 GMT");
// このページの最終更新日 (グリニッジ標準時で表現) をブラウザに通知します。これは目的と同じ日です。ブラウザに最新情報を強制的に取得します
header("Last-Modified:".gmdate("D,i:s")."GMT");制御: キャッシュなし、再検証が必要");
//パラメータ (以前のサーバーと互換性があります)、つまり HTTP1.0 プロトコルと互換性があります
header("Pragma: no-cache");
例 3:
ステータス値をブラウザに出力します、主にアクセス制御に使用されます
header('HTTP/1.1 401 Unauthorized');
header('status: 401 Unauthorized'); 以下に示すように、ユーザーのページへのアクセスを制限するには、ステータスを 404 に設定します。ブラウザにページが存在しないと表示されるようにします
header('HTTP/1.1 404 Not Found');
header("status: 404 Not Found") // この記述は間違っています
?>
例5:
隠しファイルの場所
htmlタグを使用して通常のファイルをダウンロードできます。ファイルの機密性を保ち、ファイルのリンクを他の人に知らせたくない場合は、ヘッダー関数を使用してファイルをダウンロードできます。
header("Content-type: audio/mpeg");
header("Content-Disposition:attachment; filename=filenale");
header("Content-Description: PHP3 Generated Data");
例 6:
ヘッダー関数の前にコンテンツを入力する
一般に、ヘッダー関数の前に HTML コンテンツを出力することはできません。同様に、setcookie() 関数やセッション関数も、出力ストリームにメッセージ ヘッダー情報を追加する必要があります。 header() が実行される前に echo などのステートメントがある場合、後で header() が発生したときに、「警告: ヘッダー情報を変更できません - ヘッダーは既に .... によって送信されました。」エラーが報告されます。つまり、これらの関数の前にテキスト、空白行、復帰などを含めることはできません。exit() 関数を header() 関数の後に追加するのが最善です。たとえば、次の間違った記述では、2 つの PHP コード スニペットの間に空白行があります:
//some code here
?>
//There should be ablank line here
header("http/1.1 403 Forbidden") ;
exit();
?>
理由:
PHP スクリプトの実行が開始されると、http メッセージ ヘッダー (タイトル) 情報と本文情報を同時に送信できます。 http メッセージ ヘッダー (from header()または SetCookie() 関数) はすぐには送信されず、代わりにリストに保存されます。ただし、スクリプトの送信後に、デフォルトのヘッダー (Content-Type ヘッダーなど) を含むヘッダー情報を変更できます。ヘッダー以外の出力 (HTML または print() 呼び出しなど) を実行した場合、PHP は最初にすべてのヘッダーを送信し、次に HTTP ヘッダーを終了して、本文データの送信を続行する必要があります。ヘッダー情報の変更は許可されていないため、上記のいずれかのエラー メッセージが送信されます。
解決策:
php.ini を変更してキャッシュ (output_buffering) をオンにするか、プログラム内でキャッシュ関数 ob_start()、ob_end_flush() などを使用します。原則として、output_buffering が有効な場合、スクリプトが出力を送信するときに PHP は HTTP ヘッダーを送信しません。代わりに、この出力を動的に増加するキャッシュにパイプ処理します (集中出力メカニズムを持つ PHP 4.0 でのみ使用可能)。ヘッダーは実際には送信されないため、ヘッダーを変更/追加したり、Cookie を設定したりすることができます。すべてのスクリプトが終了すると、PHP は自動的に HTTP ヘッダーをブラウザーに送信し、出力バッファーの内容を送信します。
その他の関数ヘッダー - ページジャンプについては、PHP 中国語 Web サイトの関連記事にご注意ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









