それらはすべて$_SERVER
に保存されていますか?カスタムのものでも?
これを試して
print_r
($ _ SERVER)
配列内のすべてをリストします
getallheaders()
を使用して、送信されたすべてのHTTPヘッダーの配列を取得できます。
$headers = getallheaders();
foreach($headers as $key=>$val){
echo $key . ': ' . $val . '<br>';
}
すべてのHTTP要求ヘッダーフィールドは$_SERVER
(Cookie
を除く)にあり、キーはHTTP_
で始まります。 Apacheを使用している場合は、 Apache_request_headers
を試すこともできます。
Apache_request_headers()
またはそのエイリアス getallheaders()
を使用するだけです。
使用法:echo json_encode(getallheaders());
上記の関数が存在しない場合(古いPHPまたはnginx)、これをフォールバックとして使用できます:
<?php
if (!function_exists('getallheaders')){
function getallheaders() {
$headers = '';
foreach ($_SERVER as $name => $value) {
if (substr($name, 0, 5) == 'HTTP_') {
$headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
}
}
return $headers;
}
}
?>
$ _ SERVER 変数を見て、その内容を確認してください。リンクされたマニュアルページには多くの有用な情報がありますが、単にvar_dump
で実際に何が入っているかを確認します。エントリの多くは、クライアントが行うことを決定したことと、PHPの奇妙な癖に応じて、入力されるか、入力されません。ローカルサーバー上のものを見ると、文字列としてすべてをリストする$ _SERVER ["ALL_HTTP"]エントリもありますが、マニュアルページにはリストされていないため、明らかにこれは標準ではありません。
apache_request_header()を使用できます。多分あなたを助けます。
$headers = Apache_request_headers();
foreach ($headers as $header => $value) {
echo "<pre>";
echo "$header : $value";
echo "</pre>";
}