PHPのheader()関数とは?HTTPヘッダーを操作する基本と活用法
header() 関数は、PHPでHTTPレスポンスヘッダーを送信するための関数です。
ページのリダイレクトやコンテンツの種類指定など、ブラウザの動作に影響を与える重要な用途に使われます。
使用時の注意点
- header() の前に何も出力してはいけない(HTMLやechoなど)
- ヘッダーは最初に送られるため、後からの変更はできない
- 出力前でも改行やスペースがあるとエラーになることがある
主な用途と例
@ ページのリダイレクト
<?php
header("Location: thanks.php");
exit;
?>
exit
を忘れると、リダイレクト後にスクリプトが実行され続けるので注意。
A コンテンツタイプの指定
JSONやCSVなど、出力する内容に応じてブラウザにタイプを伝える。
header("Content-Type: application/json; charset=utf-8");
echo json_encode(["status" => "ok"]);
B ダウンロードさせる(Content-Disposition)
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"sample.txt\"");
readfile("sample.txt");
C ステータスコードの送信
header("HTTP/1.1 404 Not Found");
独自のステータスコードを返すときや、REST APIのレスポンスで活用されます。
よく使うヘッダー一覧
Location:
ページ移動(リダイレクト)
Content-Type:
データ形式(text/html, application/jsonなど)
Content-Disposition:
ダウンロード時のファイル名指定
Cache-Control:
キャッシュ制御
HTTP/1.1 403 Forbidden
:ステータス変更(アクセス拒否など)
まとめ
header()
はHTTPレスポンスヘッダーを操作する関数
- 出力前(HTMLやechoの前)に使用する必要がある
- リダイレクトやファイルダウンロード、ステータス制御に使用
exit
を併用して処理の続行を防ぐのが基本
header() 関数は、PHPでの動的なページ制御に欠かせない強力なツールです。
正しく理解しておくことで、ユーザーの操作性やシステムの応答性を大きく向上させることができます。