PHPスクリプトでアクセスされたブラウザを判別するサンプルコードを以下に記します。
htmlinsert(): The given local file does not exist or is not readable.
ブラウザ名を取得するにはヘッダーに含まれるHTTP_USER_AGENTを取得し判別します。
実際に$_SERVER変数の内容を確認してみます。
準備したPHPサンプルスクリプトは以下の通りです。
agent1.php (改行コードLF)
<?php print($_SERVER['HTTP_USER_AGENT']); ?>
Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36返却されたHTTP_USER_AGENT文字列内にSafariがあるので判別する順序に注意する必要がありますね。
Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; GTB7.5; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; CMDTDF; BRI/2)
上記の出力を見ると以下のようにブラウザ判別ができることが確認できます。
判別文字列 | ブラウザ |
Chrome | Google Chrome |
Firefox | Firefox |
MSIE | Internet Explorer |
他のブラウザも同様に確認してみれば良いと思います。
以下にブラウザ判別のサンプルスクリプトを記します。
上記では、$_SERVER['HTTP_USER_AGENT']でブラウザのエージェント名を取得していましたが、
以下のサンプルスクリプトでは同様の動作をするgetenv関数を使用してみることにします。
文字列が含まれるかどうかに関してはereg関数を使用することにします。
agent2.php (改行コードLF)
<?php $ua = getenv('HTTP_USER_AGENT'); if (ereg("Chrome", $ua)) { print("Google Chrome"); } elseif (ereg("Firefox", $ua)) { print("Firefox"); } elseif (ereg("MSIE", $ua)) { print("Microsoft Internet Explorer"); } else { print("Unknown"); }
以上、PHPスクリプトによるブラウザ判別のサンプルスクリプトでした。