header

関数の概要

PHPの header 関数は、HTTPレスポンスヘッダーを送信するために使われます。これにより、ブラウザに対してリダイレクトやコンテンツタイプの指定、キャッシュ制御などの指示を送ることが可能です。HTTPレスポンスヘッダーはHTMLコンテンツよりも前に送信する必要があるため、header 関数は通常、スクリプトの出力が始まる前に呼び出します。

パラメータの説明

  • string $header
    送信するヘッダーの文字列。例:「Location: https://example.com」や「Content-Type: text/html; charset=UTF-8」など。
  • bool $replace(省略可能)
    同じ種類のヘッダーが既に送信されている場合に置き換えるかどうかを指定します。デフォルトは true(置き換える)。
  • int $response_code(省略可能)
    HTTPレスポンスコードを明示的に指定できます。例:301(リダイレクト)や404(ページが見つからない)など。

戻り値

header 関数は戻り値を返しません(void)。ただし、ヘッダー送信に失敗すると警告が発生しますので、スクリプトの出力状態に注意が必要です。

使用例

基本的な使い方

<?php
// ページを別のURLへリダイレクトする
header('Location: https://example.com');
exit;
?>

この例ではアクセスしたページを「https://example.com」へリダイレクトします。リダイレクト後に処理が継続しないように exit; を使います。

コンテンツタイプを指定する例

<?php
// レスポンスのコンテンツタイプをJSONに指定する
header('Content-Type: application/json; charset=UTF-8');
echo json_encode(['status' => 'success']);
?>

APIレスポンスのようにJSONを返す際に、ブラウザやクライアントに正しいデータ形式を伝えられます。

ステータスコードを指定する例

<?php
// 404 Not Foundを返す
header('HTTP/1.1 404 Not Found');
echo 'このページは見つかりませんでした。';
?>

リクエストされたページが存在しない場合に、HTTPステータスコード404を送信してブラウザにエラーを通知します。

関連する関数

  • setcookie – HTTPレスポンスヘッダーにクッキーをセットする
  • http_response_code – ステータスコードを手軽に設定する
  • headers_sent – すでにヘッダーが送信されているかを確認する

まとめ

PHPの header 関数は、HTTPレスポンスヘッダーの制御に欠かせない重要な機能です。リダイレクト、コンテンツタイプやステータスコードの指定に使い、ユーザーのブラウザやAPIクライアントに適切な指示を送ることができます。レスポンスの出力が始まる前に呼び出す必要があるため、使用時はヘッダー送信のタイミングに注意しましょう。