クライアントから送信されたカスタム ヘッダー データをキャプチャする必要がある Web アプリケーションを開発しています。私のローカルホストには PHP 5.4 がインストールされていて、getallheaders()
.
しかし、PHP 5.3がインストールされている私のホスティングでは。ヘッダーが取得できません。私はすでに次のような他の方法を試しました:
foreach ($_SERVER as $name => $value)
{
if (substr($name, 0, 5) == 'HTTP_')
{
$name = str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))));
$headers[$name] = $value;
} else if ($name == "CONTENT_TYPE") {
$headers["Content-Type"] = $value;
} else if ($name == "CONTENT_LENGTH") {
$headers["Content-Length"] = $value;
}
}
と
apache_request_headers(), apache_response_headers()
他に方法はありますか?私のホスティングは PHP 5.3 (FastCGI) を使用しています。
アップデート
さて、私は問題がどこから来たのかを理解しました。最初に(概念を証明するために)、PHPをApacheモジュールとして実行するように切り替えます。はい、期待どおりgetallheaders()
.
その後、他の残りのクライアント/デバッガーでカスタム ヘッダー (現在は FastCGI として) を送信しようとしましたが、コードはヘッダー ($_SERVER 内) をキャプチャできます。問題は、サーバーが Apache モジュールとして実行されている場合にのみ、最初の REST クライアントがヘッダーを送信できる理由です。
私のユーザーの 1 人が同じ問題を抱えていて、もう 1 人は問題がない場合は残念です。