PHPらしいheader関数のシンプルなコード例
何気なくPHP: header - Manualを見ていたら、凄くPHPらしいコード例を発見したのでメモ。
例えば、ステータスコード 301(恒久的移動)を送出してリダイレクトしたい場合、
<?php
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://example.com/');
などと書くところを、
<?php
header('Location: URL', true, 301);
と書いても同様の結果が得られる。良くも悪くもPHPらしい書き方。
以下に他のコード例も書いてみる。
ロケーションヘッダを送出する例
PHPマニュアルにも載っているコード例。
<?php
// 301 Moved Permanently
header('Location: http://example.com/', true, 301);
// 302 Found
header('Location: http://example.com/', true, 302);
header('Location: http://example.com/');
// 303 See Other
header('Location: http://example.com/', true, 303);
// 307 Temporary Redirect
header('Location: http://example.com/', true, 307);
HTTPステータスコードを送出する例
ロケーションヘッダ以外も色々試してみたところ、第一引数にHTTPを入れればHTTPステータスコードを送出することも出来る模様。取り敢えず良く使いそうなものを載せておく。
<?php
// 400 Bad Request
header('HTTP', true, 400);
// 403 Forbidden
header('HTTP', true, 403);
// 404 Not Found
header('HTTP', true, 404);
// 500 Internal Server Error
header('HTTP', true, 500);
参考リンク
- HTTP/1.1の仕様確認 ハイパーテキスト転送プロトコル – HTTP/1.1
- ステータスコードをさくっと確認 HTTP Status Code