PHP のヘッダーの場所

Subodh Poudel 2023年1月30日
  1. PHP での Header() 関数とその構文の概要
  2. PHP の location:ヘッダー文字列で header() 関数を使用する
PHP のヘッダーの場所

この記事では、PHP での header() 関数の概念とその構文を紹介します。PHP でヘッダーを作成するルールについて説明します。このメソッドは、Content-Type および Content-Disposition ヘッダーでも機能します。

この記事では、location:ヘッダー文字列も紹介します。PHP でのロケーションヘッダーの使用法と本質について説明します。この記事では、ヘッダーの場所が応答コードを送信し、ブラウザーを別のページにリダイレクトする方法を示します。

PHP での Header() 関数とその構文の概要

header() 関数は、生の HTTP ヘッダーをクライアントに送信できるようにする組み込みの PHP 関数です。送信されるヘッダーは生の形式です。出力を送信する前に、header() 関数を呼び出す必要があります。HTML タグや PHP フォームによって送信される出力など、任意の形式の出力は、ヘッダー情報を送信する前に破棄する必要があります。したがって、出力の前にサーバーからブラウザに送信される情報を制御できます。

header() 関数の構文は次のとおりです:header(string,replace,http_response_code);。この関数は 3つのパラメーターを受け入れます。最初の引数はヘッダー文字列です。ヘッダー文字列には 2つのタイプがあります。最初のタイプは、HTTP/で始まる文字列です。ブラウザに送信する HTTP コードを指定します。ヘッダー文字列の 2 番目のタイプは、ブラウザを指定された場所にリダイレクトする location:ヘッダーです。関数の次のパラメーターは、ブール値を表す replace です。これは、ヘッダーが以前の同様のヘッダーを置き換えるかどうかを決定するオプションのパラメーターです。3 番目のパラメーターhttp_response code も、HTTP 応答コードを指定された値に強制するオプションのパラメーターです。

たとえば、header() 関数を作成し、ヘッダー文字列を Content-Type として使用します。Content-Type の値を application/pdf として記述します。もう一度、別の header() 関数を作成します。今回は、ヘッダー文字列を Content-Disposition と記述します。文字列の値を attachment として指定します。その後のセミコロンを忘れないでください。セミコロンの後に別の属性 filename を記述し、ファイル名を download.pdf として指定します。

次のスクリプトを実行すると、ダウンロードダイアログボックスが表示されます。download.pdf という名前の pdf ファイルをダウンロードするように求められます。最初のヘッダーはファイルが pdf 形式であることを示し、2 番目のヘッダーはファイルのファイル名を示し、ブラウザにファイルを保存するためのダイアログを表示させます。

サンプルコード:

#php 7.x
<?php
header('Content-Type: application/pdf'); 
header('Content-Disposition: attachment; filename="downloaded.pdf"');
?>

PHP の location:ヘッダー文字列で header() 関数を使用する

PHP の location:ヘッダー文字列で header() 関数を使用できます。ヘッダー文字列は、指定された場所に Web ページをリダイレクトします。これは通常、入力を送信した後にユーザーを特定のページにリダイレクトするために Web ページで使用されます。たとえば、ユーザーがログイン中に正しいクレデンシャルを入力すると、ヘッダーの場所を使用してそれらをホームページにリダイレクトできます。header() 関数でブール値と応答コードを指定できます。ただし、これらのパラメーターはオプションです。デフォルトのブール値は true です。これは、以前の同様のヘッダーを置き換えることを意味します。3 番目のパラメーターとして応答コードを提供することもできます。デフォルトの応答コードは 302 です。たとえば、配列をファイルに書き込み、現在のページを別のページにリダイレクトして、ファイルが書き込まれたというメッセージを表示できます。file_put_contents() 関数を使用してファイルに書き込むことができます。

たとえば、$day 変数に配列を作成します。キーを weathertime として作成し、それぞれの値を Sunny1:30 pm として作成します。次に、file_input_contents() を使用して、最初のパラメーターとしてファイル file.txt を指定します。2 番目のパラメーターとして print_r() 関数を使用します。変数 $day とブール値 trueprint_r() 関数のパラメーターとして指定します。if 条件を使用して式全体を評価します。if ブロック内で header() 関数を使用します。関数内で場所を message.php として指定します。コロン:を使用して場所を指定します。location:コロンの間にギャップがあってはならないことに注意してください。PHP ファイル message.php を作成します。ファイルが書き込まれたことを示すメッセージをファイルに表示します。

上記の例では、配列はファイル file.txt に書き込まれます。if 条件は true と評価され、header() 関数は場所を message.php にリダイレクトします。したがって、出力が表示されます。変更された URL はアドレスバーにも表示されます。既存のヘッダー関数の下に別のヘッダー関数があった場合、後者のヘッダー関数が前のヘッダーを置き換えます。これは、header() 関数で replace オプションのデフォルト値が true であるためです。

コード例:

#php 7.x
<?php
$day = array (
    'weather' => 'Sunny',
    'time' => '1:30 pm',
);
if(file_put_contents('file.txt', print_r($day, true))){
    header("location: message.php");
}
?>

出力:

The file has been written.
著者: Subodh Poudel
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn