web関連
phpでIE、Edgeかどうか判別する
IEとEdgeだけ表示を変えないといけない時があってphpで判別できんのかどうか調べたときの備忘録
IEとEdgeの判別する際に使うコード
以下のコードでサイトにアクセスするuserAgentを取得できる、これ使う
※何のブラウザをつかっているかの情報がわかる
<?php echo $_SERVER['HTTP_USER_AGENT']; ?>
functions.phpで実際に使ったコード
// 判定するのに文字列を小文字にする
$browser = strtolower($_SERVER['HTTP_USER_AGENT']);
// ブラウザ情報の文字列を基に判定する
if (mb_strstr($browser , 'edge')) {
echo('Edgeっす');
} elseif (mb_strstr($browser , 'trident') || mb_strstr($browser , 'msie')) {
echo('Internet Explorerっす');
}
調べていた時に「MSIE」が文字列にあるかどうかでIEか判別している記事あったけどIE11以前は「MSIE」がuserAgentの情報に含まれていたみたいっすね
今は「trident」で判別しているみたいだけどまた変わったりするのかな?
そもそもIE11は最終版だから次は無いや…
参考
▼使用してるブラウザを判定したい(javascript)
https://qiita.com/sakuraya/items/33f93e19438d0694a91d
文字列を検索する関数
strstr()
調べてて、同じく文字列を検索するmb_strstr
ってのがあった。
mb_strstr
はマルチバイト文字(全角文字)を検索できるんすね(メモ)
window.navigator.userAgent
で判定できるみたい静的なHTMLのサイトで使ってみよ