phpヘッダーの詳しい説明

Jun 23, 2016 pm 02:34 PM

phpヘッダーの詳細説明
(PHP 3, PHP 4, PHP 5)

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")
?>


注: 実際のヘッダー ( ) が最初に呼び出されます。 HTTP ヘッダーがすでに送信されていない限り、新しいステータス行で header() 関数を呼び出すことで、いつでも上書きできます。

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("Location: http://". $ _SERVER['HTTP_HOST']
.


注: セッションが .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/');
?>



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

生成された PDF ファイルなど、送信されたデータを保存するようにユーザーに要求する場合は、推奨されるファイル名を提供する Content-Disposition ヘッダーを送信することで、ブラウザーにファイル保存ダイアログをポップアップさせることができます。



// これにより、PDF ファイルが直接出力されます
header('Content-type: application/pdf');

// これにより、PDF ファイルをダウンロードするように求められます download.pdf
header('Content -Disposition:attachment; filename="downloaded.pdf"');

// これは、original.pdf のソース ファイルです
readfile('original.pdf');
?> 注: Microsoft Internet Explorer 4.01 のバグにより、このメカニズムは適切に動作できなくなり、解決策はありません。 Microsoft Internet Explorer 5.5 にもこれに影響する脆弱性があり、Service Pack 2 以降にアップグレードすることで解決できます。
注: セーフ モードでは、WWW-Authenticate ヘッダー (HTTP 認証に使用される) が設定されている場合、スクリプトの UID がレルム部分に追加されます。
タグ - 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)

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPにおける後期静的結合の概念を説明します。 PHPにおける後期静的結合の概念を説明します。 Mar 21, 2025 pm 01:33 PM

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 フレームワークのカスタマイズ/拡張:カスタム機能を追加する方法。 Mar 28, 2025 pm 05:12 PM

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

フレームワークセキュリティ機能:脆弱性から保護します。 フレームワークセキュリティ機能:脆弱性から保護します。 Mar 28, 2025 pm 05:11 PM

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

See all articles