Rewish

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);

参考リンク