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

PHP header()関数の詳しい説明(301、404、その他のエラー設定)_PHPチュートリアル

Jul 21, 2016 pm 02:58 PM
301 404 header 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. 操作例:
~~~~~~~~~~~~~
<1> これが最も一般的です

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


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

コード

//既に過ぎた日付である限り、このページの有効期限 (グリニッジ標準時で表現) をブラウザーに伝えます。
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");
?>

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

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 までご連絡ください。

ホット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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

今まで知らなかったことを後悔している 7 つの PHP 関数 今まで知らなかったことを後悔している 7 つの PHP 関数 Nov 13, 2024 am 09:42 AM

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

See all articles