こんばんは。きわさです。
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 ?>", } }
ちょっと書き方はあれですが、どう取得してどう出力されるのかはわかると思います。