PHP - 接続情報の取得や表示 - $_SERVER
- 1. 取得してみる	
 
- 2. 一覧で見る	
 
  
1. 取得してみる
 例えば、$_SERVER['HTTP_USER_AGENT'] を利用すると、接続中のユーザのブラウザを調べることができます。
<?php
	$user_agent = '';
	if (!empty($_SERVER['HTTP_USER_AGENT']))
	{
		$user_agent = $_SERVER['HTTP_USER_AGENT'];
	}
	print 'HTTP_USER_AGENT=['.$user_agent.']';
?>
 
 てなコードを記述しました。
 「Windows10」で表示すると以下のような結果が取得できます。
 (下記は、ずいぶん前のものなので、現在(2022年8月8日)のバージョンであれば、もっと他の文字列になります)
 
|  ブラウザ  | 					 バージョン  | 					   表示結果    |  
| Mozilla Firefox | 	56.0.2 | 
	Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0 |  
| Google Chrome | 	62.0.3202.94 | 
	Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36 |  
| Microsoft Edge | 	38.14393.0.0 | 
	Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393 |  
| Internet Explorer | 11.953.14393.0 | 
	Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko |  
 
 もともと目的は、「Edge」で「CSS」未対応のものがあるので、それを判断するためだったのですが。
 ここで初めて、「Edge」が「Chrome」の派生であったことを理解しました。
 仮に「Chrome」かどうかを判断するには「Chrome」の文字列がはいっていて、「Edge」の文字列が入っていないこと・・・といういささかヘンテコな判断文が必要になるわけです。
2. 一覧で見る
<?php
foreach ($_SERVER as $key => $value)
{
	print '<b>$_SERVER['.$key.'] => '.$value.'<b><br>';
}
?>
 
 てなコードを書いて実行すると下記のように表示されます。
 (実際は上記のコードを <table></table> で囲んだり、表示したくないものを伏字にしていますが、現在接続しているあなたの情報も含まれています)
 |  キー値  | 		 値  | 
|---|
 | $_SERVER[REDIRECT_STATUS] | 200 |  | $_SERVER[HTTP_ACCEPT] | */* |  | $_SERVER[HTTP_USER_AGENT] | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) |  | $_SERVER[HTTP_ACCEPT_ENCODING] | gzip, br, zstd, deflate |  | $_SERVER[HTTP_HOST] | freebsd.sing.ne.jp |  | $_SERVER[HTTP_VIA] | 1.1 squid-proxy-5b5d847c96-d5s4q (squid/6.13) |  | $_SERVER[HTTP_X_FORWARDED_FOR] | 10.2.206.61 |  | $_SERVER[HTTP_CACHE_CONTROL] | max-age=259200 |  | $_SERVER[HTTP_CONNECTION] | keep-alive |  | $_SERVER[PATH] | ちゃい |  | $_SERVER[LD_LIBRARY_PATH] | ちゃい |  | $_SERVER[SERVER_SIGNATURE] | Apache Server at freebsd.sing.ne.jp Port 80
 |  | $_SERVER[SERVER_SOFTWARE] | ちゃい |  | $_SERVER[SERVER_NAME] | freebsd.sing.ne.jp |  | $_SERVER[SERVER_ADDR] | 192.168.1.3 |  | $_SERVER[SERVER_PORT] | 80 |  | $_SERVER[REMOTE_ADDR] | 216.73.216.37 |  | $_SERVER[DOCUMENT_ROOT] | ちゃい |  | $_SERVER[REQUEST_SCHEME] | http |  | $_SERVER[CONTEXT_PREFIX] |  |  | $_SERVER[CONTEXT_DOCUMENT_ROOT] | ちゃい |  | $_SERVER[SERVER_ADMIN] | ちゃい |  | $_SERVER[SCRIPT_FILENAME] | ちゃい |  | $_SERVER[REMOTE_PORT] | 57930 |  | $_SERVER[REDIRECT_URL] | /lang/php/10/02.html |  | $_SERVER[GATEWAY_INTERFACE] | ちゃい |  | $_SERVER[SERVER_PROTOCOL] | ちゃい |  | $_SERVER[REQUEST_METHOD] | GET |  | $_SERVER[QUERY_STRING] |  |  | $_SERVER[REQUEST_URI] | /lang/php/10/02.html |  | $_SERVER[SCRIPT_NAME] | ちゃい |  | $_SERVER[PHP_SELF] | ちゃい |  | $_SERVER[REQUEST_TIME_FLOAT] | 1762265745.9896 |  | $_SERVER[REQUEST_TIME] | 1762265745 |  
 
 
 | 
 |