用php怎样判断浏览器?教你两个办法
Admin 2021-05-28 群英技术资讯 1274 次浏览
我们知道浏览器有很多,不同人的使用习惯不同,因此我们需要的统计网站访问用户使用浏览器的比例,这样有助我们更好的做好网站。那么要如何判断浏览器类型呢?下面给大家分享几个基于php判断浏览器的方法。
判断浏览器类型方法一
function userBrowser() {
$user_OSagent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($user_OSagent, "Maxthon") && strpos($user_OSagent, "MSIE")) {
$visitor_browser = "Maxthon(Microsoft IE)";
} elseif (strpos($user_OSagent, "Maxthon 2.0")) {
$visitor_browser = "Maxthon 2.0";
} elseif (strpos($user_OSagent, "Maxthon")) {
$visitor_browser = "Maxthon";
} elseif (strpos($user_OSagent, "MSIE 9.0")) {
$visitor_browser = "MSIE 9.0";
} elseif (strpos($user_OSagent, "MSIE 8.0")) {
$visitor_browser = "MSIE 8.0";
} elseif (strpos($user_OSagent, "MSIE 7.0")) {
$visitor_browser = "MSIE 7.0";
} elseif (strpos($user_OSagent, "MSIE 6.0")) {
$visitor_browser = "MSIE 6.0";
} elseif (strpos($user_OSagent, "MSIE 5.5")) {
$visitor_browser = "MSIE 5.5";
} elseif (strpos($user_OSagent, "MSIE 5.0")) {
$visitor_browser = "MSIE 5.0";
} elseif (strpos($user_OSagent, "MSIE 4.01")) {
$visitor_browser = "MSIE 4.01";
} elseif (strpos($user_OSagent, "MSIE")) {
$visitor_browser = "MSIE 较高版本";
} elseif (strpos($user_OSagent, "NetCaptor")) {
$visitor_browser = "NetCaptor";
} elseif (strpos($user_OSagent, "Netscape")) {
$visitor_browser = "Netscape";
} elseif (strpos($user_OSagent, "Chrome")) {
$visitor_browser = "Chrome";
} elseif (strpos($user_OSagent, "Lynx")) {
$visitor_browser = "Lynx";
} elseif (strpos($user_OSagent, "Opera")) {
$visitor_browser = "Opera";
} elseif (strpos($user_OSagent, "Konqueror")) {
$visitor_browser = "Konqueror";
} elseif (strpos($user_OSagent, "Mozilla/5.0")) {
$visitor_browser = "Mozilla";
} elseif (strpos($user_OSagent, "Firefox")) {
$visitor_browser = "Firefox";
} elseif (strpos($user_OSagent, "U")) {
$visitor_browser = "Firefox";
} else {
$visitor_browser = "其它";
}
return $visitor_browser;
}
方法二
下面这个是php通过正则匹配的,理论上效率不如上面的方法一, 大家可以根据需要使用。
private function getBrowser(){
$flag=$_SERVER['HTTP_USER_AGENT'];
$para=array();
// 检查操作系统
if(preg_match('/Windows[\d\. \w]*/',$flag, $match)) $para['os']=$match[0];
if(preg_match('/Chrome\/[\d\.\w]*/',$flag, $match)){
// 检查Chrome
$para['browser']=$match[0];
}elseif(preg_match('/Safari\/[\d\.\w]*/',$flag, $match)){
// 检查Safari
$para['browser']=$match[0];
}elseif(preg_match('/MSIE [\d\.\w]*/',$flag, $match)){
// IE
$para['browser']=$match[0];
}elseif(preg_match('/Opera\/[\d\.\w]*/',$flag, $match)){
// opera
$para['browser']=$match[0];
}elseif(preg_match('/Firefox\/[\d\.\w]*/',$flag, $match)){
// Firefox
$para['browser']=$match[0];
}elseif(preg_match('/OmniWeb\/(v*)([^\s|;]+)/i',$flag, $match)){
//OmniWeb
$para['browser']=$match[2];
}elseif(preg_match('/Netscape([\d]*)\/([^\s]+)/i',$flag, $match)){
//Netscape
$para['browser']=$match[2];
}elseif(preg_match('/Lynx\/([^\s]+)/i',$flag, $match)){
//Lynx
$para['browser']=$match[1];
}elseif(preg_match('/360SE/i',$flag, $match)){
//360SE
$para['browser']='360安全浏览器';
}elseif(preg_match('/SE 2.x/i',$flag, $match)) {
//搜狗
$para['browser']='搜狗浏览器';
}else{
$para['browser']='unkown';
}
return $para;
}
保存$para即可
php判断浏览器是不是IE
1、$_SERVER['HTTP_USER_AGENT']和strpos
2、打印结果
谷歌:
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36"
火狐:
"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0"
IE:
"Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"
3、php控制器中
网上说用判断ua中是否有MSIE,然而并没有,用Triden判断也可以的。
public function isIE() {
$isIE = strpos($_SERVER['HTTP_USER_AGENT'],"Triden");
return $isIE;
}
总结
以上就是PHP如何判断浏览器的介绍,需要的朋友可以参考上述代码,希望大家阅读完这篇文章能有所收获。想要了解更多PHP相关内容,大家可以关注其他文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
php接收不到数据怎么解决?一些朋友遇到php上传后,但是后台却没有接受到数据的情况,这要怎么解决呢?下面给大家分享两种情况的php接收不到数据以及解决方法,需要的朋友可以参考。
今天小编就为大家分享一篇关于phpinfo无法显示的原因及解决办法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
这篇文章主要介绍了PHP读取文件,解决中文乱码UTF-8的方法,结合实例形式对比分析了PHP文件读取及编码转换相关操作技巧,需要的朋友可以参考下
这篇文章给大家分享的是PHP使用递归来按层级查找数据的内容。小编觉得挺实用的,因此分享给大家做个参考,文中示例代码介绍的非常详细,感兴趣的朋友接下来一起跟随小编看看吧。
怎么在docker上运行workerman?下面本篇文章就来给大家介绍一下在docker上部署运行workerman的方法,有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008