こんばんは。きわさです。
PHPでリクエストの情報を取得する方法についてです。
$_SERVER
リクエストの情報は $_SERVER 配列から取得できます。ほかにも色々な情報がありますが、今回はリクエスト情報に着目します。
リクエストURI
$_SERVER[‘REQUEST_URI’] では、ページアクセスに指定されたURIを取得できます。
リクエストメソッド
$_SERVER[‘REQUEST_METHOD’] では、GETやPOSTなど、ページアクセスに指定されたメソッドを取得できます。
タイムスタンプ
$_SERVER[‘REQUEST_TIME’] では、リクエスト開始時のタイムスタンプを取得できます。
URLパラメータ
$_SERVER[‘QUERY_STRING’] では、リクエスト時のURLパラメータを取得できます。
/test.php?a=2&b=1 の場合は、?以降の a=2&b=1 の部分です。
Acceptヘッダ
$_SERVER[‘HTTP_ACCEPT’] では、リクエストヘッダ Accept: の値を取得できます。
Accept-Charsetヘッダ
$_SERVER[‘HTTP_ACCEPT_CHARSET’] では、リクエストヘッダ Accept-Charset: の値を取得できます。
Accept-Encodingヘッダ
$_SERVER[‘HTTP_ACCEPT_ENCODING’] では、リクエストヘッダ Accept-Encoding: の値を取得できます。
Accept-Languageヘッダ
$_SERVER[‘HTTP_ACCEPT_LANGUAGE’] では、リクエストヘッダ Accept-Language: の値を取得できます。
Connectionヘッダ
$_SERVER[‘HTTP_CONNECTION’] では、リクエストヘッダ Connection: の値を取得できます。
Hostヘッダ
$_SERVER[‘HTTP_HOST’] では、リクエストヘッダ Host: の値を取得できます。
Refererヘッダ
$_SERVER[‘HTTP_REFERER’] では、リクエストヘッダ Referer: の値を取得できます。
User-Agentヘッダ
$_SERVER[‘HTTP_USER_AGENT’] では、リクエストヘッダ User-Agent: の値を取得できます。
IPアドレス
$_SERVER[‘REMOTE_ADDR’] では、リクエスト送信元のIPアドレスを取得できます。
リクエスト情報をjson形式で出力
PHPで取得したリクエスト情報をjsonで出力してみます。
<?php
$uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI']: "";
$method = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD']: "";
$time = isset($_SERVER['REQUEST_TIME']) ? date('Y-m-d H:i:s', $_SERVER['REQUEST_TIME']): "";
$query = isset($_SERVER['QUERY_STRING']) ? $_SERVER['QUERY_STRING']: "";
$accept = isset($_SERVER['HTTP_ACCEPT']) ? $_SERVER['HTTP_ACCEPT']: "";
$charset = isset($_SERVER['HTTP_ACCEPT_CHARSET']) ? $_SERVER['HTTP_ACCEPT_CHARSET']: "";
$encoding = isset($_SERVER['HTTP_ACCEPT_ENCODING']) ? $_SERVER['HTTP_ACCEPT_ENCODING']: "";
$language = isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? $_SERVER['HTTP_ACCEPT_LANGUAGE']: "";
$connection = isset($_SERVER['HTTP_CONNECTION']) ? $_SERVER['HTTP_CONNECTION']: "";
$host = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST']: "";
$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER']: "";
$useragent = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT']: "";
$addr = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR']: "";
?>
{
"status": "OK",
"results": {
"uri": "<?php echo $uri ?>",
"method": "<?php echo $method ?>",
"time": "<?php echo $time ?>",
"query": "<?php echo $query ?>",
"accept": "<?php echo $accept ?>",
"accept_charset": "<?php echo $charset ?>",
"accept_encoding": "<?php echo $encoding ?>",
"sccept_language": "<?php echo $language ?>",
"connection": "<?php echo $connection ?>",
"host": "<?php echo $host ?>",
"referer": "<?php echo $referer ?>",
"user_agent": "<?php echo $useragent ?>",
"remote_address": "<?php echo $addr ?>",
}
}
ちょっと書き方はあれですが、どう取得してどう出力されるのかはわかると思います。
