HOME >> Tips >> PHP

PHP で アクセスしているブラウザの種類を判別する方法

2017/6/1
文書番号:20739


サイトへアクセスしているブラウザの種類を判別したいことがあります。
PHP でブラウザの種類を判別する方法です。

ブラウザの種類を判別するにはヘッダーに含まれている「HTTP_USER_AGENT」を取得して判断できます。


以下の書き方ではどちらでも同じ結果を得られます。
ブラウザを変えて実行し、取得できる値を確認してみます。


<?php

echo $_SERVER['HTTP_USER_AGENT'];

echo getenv('HTTP_USER_AGENT');
?>


Google Chrome でアクセスした場合

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36

Firefox でアクセスした場合

Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0

Microsoft Edge でアクセスした場合

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 でアクセスした場合

Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
IE 10 までは「MSIE」という文字列が含まれていたのですが、IE 11からは「MSIE」が含まれていないので「Trident」という文字列で判断するといいそうです。


上記の情報から、取得した文字列の中に特定の文字列が含まれるかどうかで判別してみます。

<?php

$user_agent = $_SERVER['HTTP_USER_AGENT'];

if (strstr($user_agent, 'Chrome')) {
    print("Google Chrome");
} elseif (strstr($user_agent, 'Firefox')) {
    print("Firefox");
} elseif (strstr($user_agent, 'Edge')) {
    print("Microsoft Edge");
} elseif (strstr($user_agent, 'MSIE')) {
    print("Microsoft Internet Explorer");
} elseif (strstr($user_agent, 'Trident')) {
    print("Microsoft Internet Explorer 11");
} else {
    print("Unknown");
}
?>
デモページはこちら