クライアントがリクエストしたときにカスタム http ヘッダーを追加しました。リクエストは次のとおりです:
カスタム http リクエスト ヘッダー
var_dump(getallheaders);
最初は getallheaders パラメータを通じて取得していましたが、取得されていることがわかりましたいいえ、非常に奇妙です。PHP マニュアルを確認したところ、getallheaders 関数は Apache サーバーのみをサポートしていることがわかりました。そこで、互換性のあるメソッドを見つけました。
if (!function_exists('getallheaders')) { function getallheaders() { $headers = array(); foreach ($_SERVER as $name => $value) { if (substr($name, 0, 5) == 'HTTP_') { $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value; } } return $headers; }}var_dump(getallheaders());
実際、このメソッドは、$_SERVER 変数内で HTTP_ で始まる属性を検索し、その属性の文字列を置換するものです。 $_SERVER 変数の HTTP_USER_ID は、実際には上記のカスタマイズされた User-Id です:
php
の $_SERVER 変数さらに、カスタム Http ヘッダーに関しては、ヘッダーの命名規則に注意する必要があります。 という名前を付けるときにアンダースコアを使用することはできません。そうしないと、nginx サーバーでは読み取ることができません。その後、いくつかの情報を確認したところ、後の http プロトコルではこれを行うことは推奨されていないことがわかりました。参照アドレス:
http://stackoverflow.com/questions/3561381/custom-http-headers-naming-conventions