こんばんは。きわさです。
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で出力してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | <?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 ?>" , } } |
ちょっと書き方はあれですが、どう取得してどう出力されるのかはわかると思います。