8. php - ブラウザの情報を取得する

 
8.1 ブラウザの情報を取得する
8.2 取得結果
8.3 一覧で見る

8.1 ブラウザの情報を取得する

 php では $_SERVER というサーバー情報および実行時の環境情報を保存しているスーパーグローバル変数というものがあります。  詳細は
 PHP: $_SERVER - Manual 
 をご覧ください。  この変数の $_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.']';
?>
 てなコードを記述しました。

8.2 取得結果

 Windows10 で表示すると以下のような結果が取得できます。
ブラウザ バージョン表示結果
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
 もともと目的は、EdgeCSS 未対応のものがあるので、それを判断するためだったのですが。  仮に Chrome かどうかを判断するには Chrome の文言がはいっていて、Edge が入っていないこと・・・というヘンテコな判断文が必要になるわけです。

8.3 一覧で見る


<?php
foreach ($_SERVER as $key => $value)
{
	print '<b>$_SERVER['.$key.'] => '.$value.'<b><br>';
}
?>
 てなコードを書いて実行すると下記のように表示されます。  (実際は上記のコードを <table></table> で囲んだり、表示したくないものを伏字にしています)
キー値
$_SERVER[HTTP_HOST]freebsd.sing.ne.jp
$_SERVER[HTTP_ACCEPT_ENCODING]x-gzip, gzip, deflate
$_SERVER[HTTP_USER_AGENT]CCBot/2.0 (http://commoncrawl.org/faq/)
$_SERVER[HTTP_ACCEPT]text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
$_SERVER[PATH]ちゃい
$_SERVER[LD_LIBRARY_PATH]ちゃい
$_SERVER[SERVER_SIGNATURE]
$_SERVER[SERVER_SOFTWARE]ちゃい
$_SERVER[SERVER_NAME]freebsd.sing.ne.jp
$_SERVER[SERVER_ADDR]122.215.121.34
$_SERVER[SERVER_PORT]80
$_SERVER[REMOTE_HOST]ec2-54-198-122-70.compute-1.amazonaws.com
$_SERVER[REMOTE_ADDR]54.198.122.70
$_SERVER[DOCUMENT_ROOT]ちゃい
$_SERVER[REQUEST_SCHEME]http
$_SERVER[CONTEXT_PREFIX]
$_SERVER[CONTEXT_DOCUMENT_ROOT]ちゃい
$_SERVER[SERVER_ADMIN]ちゃい
$_SERVER[SCRIPT_FILENAME]ちゃい
$_SERVER[REMOTE_PORT]44292
$_SERVER[GATEWAY_INTERFACE]ちゃい
$_SERVER[SERVER_PROTOCOL]ちゃい
$_SERVER[REQUEST_METHOD]GET
$_SERVER[QUERY_STRING]
$_SERVER[REQUEST_URI]/lang/php/08.html
$_SERVER[SCRIPT_NAME]ちゃい
$_SERVER[DATE_LOCAL]
$_SERVER[DATE_GMT]
$_SERVER[LAST_MODIFIED]
$_SERVER[DOCUMENT_URI]/lang/php/08.html
$_SERVER[DOCUMENT_ARGS]
$_SERVER[USER_NAME]
$_SERVER[DOCUMENT_NAME]08.html
$_SERVER[QUERY_STRING_UNESCAPED]content=php - ブラウザの情報を取得する
$_SERVER[PHP_SELF]ちゃい
$_SERVER[REQUEST_TIME_FLOAT]1524714385.483
$_SERVER[REQUEST_TIME]1524714385