この回答に基づいて、ヘッダーを送信するための非常に単純な省略関数を実装しようとしています。
関数は次のようになります。
function hdr($code)
{
if (!headers_sent())
{
header('x', TRUE, $code);
}
}
これで、ローカルサーバーで正常に機能しますが、本番環境に入ると500が表示され、エラーログが次のように表示されます。
[2012年6月19日火曜日11:01:59][エラー][クライアント87.12.83.179]スクリプトからの不正な形式のヘッダー。不正なヘッダー=x:php54.cgi
関数をそのように変更した場合:
function hdr($code)
{
if (!headers_sent())
{
header($_SERVER['SERVER_PROTOCOL'], TRUE, $code);
}
}
本番環境では機能しますが、ローカルでは機能しません。
問題は、本番phpがcgiスクリプトであることにあると思いますか?'コード'=>'メッセージ'の連想配列を使用せずに問題を解決する(つまり、すべてに対して1つの関数を持つ)方法はありますか?