こんにちは。HappyLifeCreatorsサポート担当の大谷です。
前回、「PHP始めました」という内容でお届けしましたが、
今回も初心者である私の、
「どうすんねんコレ・・・」
と、日々行き詰まった内容についてお届けしたいと思います。
内容的には初心者と銘打っているだけに、
あさーい内容がメインとなりますが、
限りなく遠浅な感じで頑張っていきたいと思います。
今回のテーマはコチラです。
PHPでアクセスされた端末のブラウザ名を取得する
では確認していきましょう。
$_SERVER変数
$_SERVER[‘HTTP_USER_AGENT’] でユーザーエージェントの取得が可能です。
何コレめっちゃ便利。
中身を見てみると
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299
なんかChromeと書いてあります。しかしSafariとも書いてるし、Edgeとも・・・。
むむむ、ブラウザによってはどっち(どれ)やねんという状態です。
各ブラウザでの取得例をいったん見てみましょう。
ユーザーエージェントの取得例
-
Chrome
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 -
Edge
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299 -
Internet Explorer
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; Trident/5.0)
Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko -
Safari
Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1 Mobile/15E148 Safari/604.1 -
FireFox
Mozilla/5.0 (Windows 6.2; rv:20.0) Gecko/20121202 Firefox/20.0 -
Safari
Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.1 Mobile/15E148 Safari/604.1 -
Opera
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 OPR/57.0.3098.106Opera
ほうほう、文字列を切り出して判断する場合、Edge、Chrome、Safari、そしてOperaあたりは混在している為、考慮する必要がありそうです。
IEは、MSIEかTrident、FireFoxはそのままFireFoxで判別可能。素直でよかった。
今回はそれらを踏まえ、If文の判定を以下の順番で判定してみます。
Edge ⇒ Opera ⇒ Chrome ⇒ Safari ⇒ IE ⇒ FireFox
上記を考慮して、実際にコーディングしてみました。
上記プログラムは $browser に判定したブラウザ種類の文字列を保存します。
こんな感じで取得できるんですね~。なるほど。
ユーザーエージェントの種類
ところでブラウザの判定もそうですが、ユーザーエージェントの種類、多すぎてなかなかにえげつない・・・。
興味のある方はブラウザ戦争の経緯など、調べてみてください。
浅さを売りにしている私が扱うにはあまりに不向きすぎます(笑)
100%の精度で切り分けるのは難しいと思うので、
最低ここまでは判別したい!っていう範囲で利用してみてはいかがでしょうか。
お付き合いいただきありがとうございました!
それではまた!