問題
PHPでブラウザがIEまたはEdgeの時だけ処理を分けるには?
解決策
- 「$_SERVER['HTTP_USER_AGENT'])」でユーザーエージェントを取得します。
- 「strstr」でユーザーエージェントの文字列を検索して、EDGEなら「Edge」または「Edg」、IEなら「Trident」または「MSIE」がヒットするので、それを元にIF構文で処理を振り分けます。
PHPでブラウザ「IE」と「Edge」に対して対応できるようにする。
IEのバージョンが上がった現在でも、IE特有のエラー・現象に遭遇します。
そしてEdgeも特有のエラー・現象に出くわします。
そのためにPHPでブラウザがIEまたはEdgeの時だけ処理を分ける方法をご紹介します。
ユーザーエージェントを取得します。
「$_SERVER[‘HTTP_USER_AGENT’]」でユーザーエージェントを取得します。
$browser = $_SERVER['HTTP_USER_AGENT'];
「strstr」でユーザーエージェントの文字列を検索して処理を振り分けます。
「strstr」でユーザーエージェントの文字列を検索して処理を振り分けます。
if (strstr($browser, 'Edge') || strstr($browser, 'Edg')) {
// EDGEの場合の処理
}elseif(strstr($browser, 'Trident') || strstr($browser, 'MSIE')) {
// IEの場合の処理
}else{
// それ以外のブラウザの場合の処理
};
ブラウザの判定文字列
判定文字列 | ブラウザ |
---|---|
Edge または Edg | Microsoft Edge |
Trident または MSIE | Microsoft Internet Explorer |
OPR または Opera | Opera |
Chrome | Google Chrome |
Firefox | Firefox |
Safari | Safari |
参考ページ
以下のサイトが、より詳しく解説してくれています。
【PHPでユーザーが利用しているWebブラウザを判断して処理を変える | Free Style】
https://blanche-toile.com/web/php-useragent-browser
【アクセスされたブラウザ名をPHPで判別する方法 – Qiita】
https://qiita.com/sunnyG/items/9b72fb18b2ef99d33bfa
コメント