検索
ホームページバックエンド開発PHPチュートリアルPHP header()関数の詳しい説明(301、404、その他のエラー設定)_PHPチュートリアル

PHP の学習を始めたばかりの場合は、学習する必要のある関数がたくさんあるかもしれません。詳細については、PHP の中国語マニュアルを参照してください。ヘッダー機能の使い方について

ページにヘッダーがいくつあっても、最後のヘッダーが実行されますが、これは条件付きです。例:

header('場所:http://www.bkjia.com');
header('場所:http://www.g.cn'); com');
これは百度にジャンプします

header('場所:http://www.bkjia.com');echo 'バンケジジア

header('場所:http://www.g.cn'); www.baidu.com');

これは Google にジャンプします
以下はヘッダー関数の使用方法の詳細な手順です
1. 機能:

~~~~~~~~~

PHP は HTTP プロトコルを使用して HTML ドキュメントのヘッダーをブラウザに送信します。ブラウザはこのページを具体的にどのように処理するのでしょうか? 送信されるコンテンツについては、PHP とは関係ありません。従来のヘッダーには次の 3 つのヘッダーのいずれかが含まれている必要があり、1 回だけ表示されます。 。

場所: xxxx:yyyy/zzzz
コンテンツ タイプ: xxxx/yyyy
ステータス: nnn xxxxxx

次に、まず HTTP プロトコルがどのように動作するかを理解しましょう

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HTTP プロトコルリクエスト/レスポンスパラダイムに基づいています。クライアントはサーバーとの接続を確立した後、サーバーにリクエストを送信します。リクエストの形式は、統一リソース識別子、プロトコルのバージョン番号の後に、リクエスト修飾子、クライアント情報、および考えられるコンテンツを含む MIME 情報が続きます。リクエストを受信した後、サーバーは対応する応答情報を返します。その形式は、情報のプロトコル バージョン番号、成功コードまたはエラー コードを含むステータス行と、それに続くサーバー情報、エンティティ情報、および考えられるコンテンツを含む MIME 情報です。
HTTPプロトコルでは、サーバーはHTTPサービスを提供する部分を指し、クライアントは使用するブラウザやダウンロードツールなどを指します。通信では、クライアントが接続要求を発行し、サーバーが接続を確立し、クライアントがHTTPリクエスト(Request)を発行し、サーバーが応答情報を返す(Respond)ことでHTTPオペレーションが完了します。


HTTP ステータス検出 (

HTTP

Header): http://www.bkjia.com/tools/http_header.php 3. HTTPプロトコルのステータスコードの意味~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1×× 予約済み 2×× リクエストが正常に受信されたことを示す

3×× リクエストを完了するには、顧客はリクエストをさらに絞り込む必要がある

4×× 顧客エラー
5×× サーバーエラー


4. 操作例:
~~~~~~~~~~~~~
これが最も一般的です

Header("Location: http://www.bkjia.com/");


を使用する代わりに、ユーザーに最新情報を取得させる既存のクライアント キャッシュ。

コード

//既に過ぎた日付である限り、このページの有効期限 (グリニッジ標準時で表現) をブラウザーに伝えます。
header("Expires: Mon, 26 Jul 1970 05:00:00 GMT");
//このページの最終更新日 (グリニッジ標準時で表現) をブラウザに通知します。目的は次のとおりです。ブラウザに最新情報を強制的に取得させるため
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");

// クライアント ブラウザにキャッシュを使用しないように指示します

header ("Cache-Control: no-cache, must-revalidate");
//パラメータ (以前のサーバーと互換性があります)、つまり HTTP1.0 プロトコルと互換性があります
header("Pragma: no-cache"); /出力 MIME タイプ
header(" Content-type: application/file");
//ファイルの長さ
header("Content-Length: 227685");
//受け入れられる範囲単位
header("Accept-Ranges: bytes ");
//ファイル保存ダイアログボックスに時間節約ファイル名がありません
header("Content-Disposition:attachment; filename=$filename");
?>

主にアクセス制御に使用されるステータス値をブラウザに出力します

header('HTTP/1.1 401 Unauthorized');
header('status: 401 Unauthorized');
たとえば、ユーザーによるこのページへのアクセスを制限したい場合は、以下に示すようにステータスを 404 に設定すると、ブラウザーにページが存在しないことが表示されます

header('HTTP/1.1 404 が見つかりません'); header("ステータス: 404 が見つかりません");

注: 従来のヘッダーには、次の 3 つのヘッダーのいずれかを含める必要があり、一度だけ表示できます。 Content-Type: xxxx/yyyy Location: xxxx:yyyy/zzzz Status: nnn xxxxxx は、新しいマルチパート ヘッダー仕様 (Multipart MIME) で 2 回以上出現する可能性があります。
使用例
例 1: この例では、ブラウザを PHP の公式 Web サイトにリダイレクトします。

ヘッダー("場所: http://www.bkjia.com/");

例 2: プロキシまたはキャッシュ内のデータではなく、ユーザーが毎回最新のデータを取得するようにしたい場合は、次のヘッダーを使用できます

header("有効期限: 1997 年 7 月 26 日月曜日 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); ("キャッシュ制御: キャッシュなし、再検証が必要");
header("プラグマ: キャッシュなし");

例 3: ユーザーのブラウザにファイルが見つからないというメッセージを表示させます。

header("ステータス: 404 見つかりません");

例 4: ユーザーにファイルをダウンロードさせます。

header("Content-type: application/x-gzip");

header("Content-Disposition:attachment; filename=ファイル名");

header("Content-Description: PHP3 生成データ");
header -- 生の HTTP ヘッダーの説明を送信します

void header ( string string [, bool replace [, int http_response_code]] )

header() 関数は、生の HTTP ヘッダーを送信するために使用されます。 HTTP ヘッダーの詳細については、HTTP/1.1 仕様を参照してください。

オプションのパラメータ replace は、前の同様のヘッダーを置き換えるか、同じタイプのヘッダーを追加するかを示します。デフォルトは置換ですが、これを FALSE に設定すると、同じタイプの複数のヘッダーが強制的に送信されるようになります。例:

header('WWW-Authenticate: Negotiate');

header('WWW-Authenticate: NTLM', false);

2 番目のオプションのパラメータ http_response_code は、HTTP 応答コードを指定された値に強制します (このパラメータは PHP 4.3.0 の新機能です)。
特別なヘッダー呼び出しが 2 つあります。 1 つ目は文字列「HTTP/」 (大文字と小文字は区別されません) で始まるヘッダーで、送信する HTTP ステータス コードを決定するために使用できます。たとえば、PHP を使用してファイルが見つからない場合のエラー処理リクエストを処理するように Apache を構成する場合 (ErrorDocument ディレクティブを使用)、スクリプトが正しいステータス コードを生成することを確認する必要があります。

header("HTTP/1.0 404 Not Found")

?>
注: 実際の header() 呼び出しが最初であるかどうかに関係なく、HTTP ステータス コードのヘッダー行は常にクライアントに送信される最初の行です。 HTTP ヘッダーがすでに送信されていない限り、新しいステータス行で header() 関数を呼び出すことで、いつでも上書きできます。


HTTPステータス検出(

HTTP

Header

): http://www.bkjia.com/tools/http_header.php 2 番目の特殊なケースは、「Location:」ヘッダーです。このヘッダーをブラウザに送り返すだけでなく、以前に 3xx ステータス コードが発行されていない限り、REDIRECT (302) ステータス コードもブラウザに返します。 header("Location: http://www.example.com/"); /* ブラウザをリダイレクトします*/ /* リダイレクト後に後続のコードが実行されないようにします*/

exit ; ?>

注: HTTP/1.1 標準では、Location: のパラメータとして絶対アドレス URI が必要ですが、一部のクライアントは相対 URI をサポートしています。通常、$_SERVER['HTTP_HOST']、$_SERVER['PHP_SELF']、および dirname() 関数を使用して、相対 URI から絶対 URI を自分で生成できます。

header("場所: http://%22.$_server['http_host'/]
.rtrim(dirname($_SERVER['PHP_SELF']), '/\')
."/ ".$relative_url);
?>

注: session.use_trans_sid が有効になっている場合でも、セッション ID は Location ヘッダー情報とともに渡されません。 SID 定数として手動で渡す必要があります。

PHP スクリプトは通常、いくつかの動的コンテンツを生成しますが、ブラウザやプロキシ サーバーによってキャッシュされてはなりません。多くのプロキシ サーバーとブラウザは、次の方法でキャッシュを無効にすることができます:

header("Cache-Control: no-cache、must-revalidate") // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");過去の時間

?>

注: 上記のコードをすべて出力しなくても、Web ページがバッファリングされていないことがわかるかもしれません。ブラウザのデフォルトのキャッシュ動作を変更するためにユーザーが設定できるオプションは多数あります。上記のヘッダーを送信することで、スクリプト ページがキャッシュされる可能性のある設定をオーバーライドできるようになります。

さらに、セッションが使用される場合、 session_cache_limiter() 関数と session.cache_limiter オプションを使用して、正しいキャッシュ関連のヘッダーを自動的に生成できます。

通常の HTML マークアップ、空白行、または PHP からの場合でも、実際の出力の前に header() を呼び出す必要があることに注意してください。よくある間違いは、include()、require()、またはその他のファイル アクセス関数を通じてコードを読み取るときに、header() を呼び出す前にスペースまたは空行が送信されることです。このエラーは、単一の PHP/HTML ファイルでもよく発生します。


/* header()を呼び出す前に何かが出力されているため、エラーが発生します
* */
header('Location: http://www.example.com/ ') ;
?>

注: PHP 4 以降、この問題はいくつかの出力バッファリング関数によって解決できます。その代償として、ブラウザへのすべての出力は、送信コマンドが発行されるまでサーバー上にキャッシュされます。この機能を実現するには、コード内で ob_start() および ob_end_flush() を使用するか、php.ini の Output_buffering 構成オプションを変更するか、サーバー構成ファイルを変更します。

header() の 2 つの一般的な使用法を以下に示します:

//ページのエンコーディングを設定します:
header('Content-Type: text/html;charset=gb2312');
//ページを調整します:
header('location:http://www.baidu.com') ;

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/363871.html技術記事 PHP の学習を始めたばかりの場合は、学習する必要のある関数がたくさんあるかもしれません。今日は PHP Header() の使い方を学習します。詳細については、PHP の中国語マニュアルを参照してください。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
誇大広告を超えて:今日のPHPの役割の評価誇大広告を超えて:今日のPHPの役割の評価Apr 12, 2025 am 12:17 AM

PHPは、特にWeb開発の分野で、最新のプログラミングで強力で広く使用されているツールのままです。 1)PHPは使いやすく、データベースとシームレスに統合されており、多くの開発者にとって最初の選択肢です。 2)動的コンテンツ生成とオブジェクト指向プログラミングをサポートし、Webサイトを迅速に作成および保守するのに適しています。 3)PHPのパフォーマンスは、データベースクエリをキャッシュおよび最適化することで改善でき、その広範なコミュニティと豊富なエコシステムにより、今日のテクノロジースタックでは依然として重要になります。

PHPの弱い参照は何ですか、そしていつ有用ですか?PHPの弱い参照は何ですか、そしていつ有用ですか?Apr 12, 2025 am 12:13 AM

PHPでは、弱い参照クラスを通じて弱い参照が実装され、ガベージコレクターがオブジェクトの回収を妨げません。弱い参照は、キャッシュシステムやイベントリスナーなどのシナリオに適しています。オブジェクトの生存を保証することはできず、ごみ収集が遅れる可能性があることに注意する必要があります。

PHPで__invoke Magicメソッドを説明してください。PHPで__invoke Magicメソッドを説明してください。Apr 12, 2025 am 12:07 AM

\ _ \ _ Invokeメソッドを使用すると、オブジェクトを関数のように呼び出すことができます。 1。オブジェクトを呼び出すことができるように\ _ \ _呼び出しメソッドを定義します。 2。$ obj(...)構文を使用すると、PHPは\ _ \ _ Invokeメソッドを実行します。 3。ロギングや計算機、コードの柔軟性の向上、読みやすさなどのシナリオに適しています。

同時性については、PHP 8.1の繊維を説明します。同時性については、PHP 8.1の繊維を説明します。Apr 12, 2025 am 12:05 AM

繊維はPhp8.1で導入され、同時処理機能が改善されました。 1)繊維は、コルーチンと同様の軽量の並行性モデルです。 2)開発者がタスクの実行フローを手動で制御できるようにし、I/O集約型タスクの処理に適しています。 3)繊維を使用すると、より効率的で応答性の高いコードを書き込むことができます。

PHPコミュニティ:リソース、サポート、開発PHPコミュニティ:リソース、サポート、開発Apr 12, 2025 am 12:04 AM

PHPコミュニティは、開発者の成長を支援するための豊富なリソースとサポートを提供します。 1)リソースには、公式のドキュメント、チュートリアル、ブログ、LaravelやSymfonyなどのオープンソースプロジェクトが含まれます。 2)StackOverFlow、Reddit、およびSlackチャネルを通じてサポートを取得できます。 3)開発動向は、RFCに従うことで学ぶことができます。 4)コミュニティへの統合は、積極的な参加、コード共有への貢献、および学習共有への貢献を通じて達成できます。

PHP対Python:違いを理解しますPHP対Python:違いを理解しますApr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHP:それは死にかけていますか、それとも単に適応していますか?PHP:それは死にかけていますか、それとも単に適応していますか?Apr 11, 2025 am 12:13 AM

PHPは死にかけていませんが、常に適応して進化しています。 1)PHPは、1994年以来、新しいテクノロジーの傾向に適応するために複数のバージョンの反復を受けています。 2)現在、電子商取引、コンテンツ管理システム、その他の分野で広く使用されています。 3)PHP8は、パフォーマンスと近代化を改善するために、JITコンパイラおよびその他の機能を導入します。 4)Opcacheを使用してPSR-12標準に従って、パフォーマンスとコードの品質を最適化します。

PHPの未来:適応と革新PHPの未来:適応と革新Apr 11, 2025 am 12:01 AM

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン