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
変数に配列を作成します。キーを weather
と time
として作成し、それぞれの値を Sunny
と 1:30 pm
として作成します。次に、file_input_contents()
を使用して、最初のパラメーターとしてファイル file.txt
を指定します。2 番目のパラメーターとして print_r()
関数を使用します。変数 $day
とブール値 true
を print_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 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