PHPでリクエスト情報を取得する

こんばんは。きわさです。

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 ?>",
    }
}

ちょっと書き方はあれですが、どう取得してどう出力されるのかはわかると思います。

スポンサーリンク