我需要能够在PHP脚本中指定IE 11和Firefox。我有以下功能。但是,在IE中它返回Mozilla。还有另一种方法来区分Firefox和IE吗?
function browser() {
$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
// you can add different browsers with the same way ..
if(preg_match('/(chromium)[ \/]([\w.]+)/', $ua))
$browser = 'chromium';
elseif(preg_match('/(chrome)[ \/]([\w.]+)/', $ua))
$browser = 'chrome';
elseif(preg_match('/(safari)[ \/]([\w.]+)/', $ua))
$browser = 'safari';
elseif(preg_match('/(opera)[ \/]([\w.]+)/', $ua))
$browser = 'opera';
elseif(preg_match('/(msie)[ \/]([\w.]+)/', $ua))
$browser = 'msie';
elseif(preg_match('/(mozilla)[ \/]([\w.]+)/', $ua))
$browser = 'mozilla';
preg_match('/('.$browser.')[ \/]([\w]+)/', $ua, $version);
return array($browser,$version[2],'name'=>$browser,'version'=>$version[2]);
}
谢谢!
答案 0 :(得分:0)
Internet Explorer 11不包含“MSIE”字符串,因为他们不希望人们认为它与旧版本的IE存在相同的问题。
您可以添加以下行:
elseif(preg_match('/(trident)[ \/]([\w.]+)/', $ua))
$browser = 'msie';
elseif(preg_match('/(firefox)[ \/]([\w.]+)/', $ua))
$browser = 'firefox';
每个网络浏览器的用户代理字符串中都会包含单词“Mozilla”(它可以追溯到Netscape时代。)