用php怎样判断浏览器?教你两个办法
Admin 2021-05-28 群英技术资讯 1009 次浏览
我们知道浏览器有很多,不同人的使用习惯不同,因此我们需要的统计网站访问用户使用浏览器的比例,这样有助我们更好的做好网站。那么要如何判断浏览器类型呢?下面给大家分享几个基于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中static变量有何用途,怎样应用呢?下文的讲解详细,步骤过程清晰,对大家进一步学习和理解相关知识有一定的帮助。有这方面学习需要的朋友就继续往下看吧!
今天小编就为大家分享一篇Laravel 模型使用软删除-左连接查询-表起别名示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
这篇文章主要为大家介绍了PHP中常见的几个方法封装,文中的示例代码讲讲详细,对我们学习或工作有一定的参考价值,感兴趣的可以了解一下
在PHP程序中,很多时候都会遇到处理时间的问题,比如:判断用户在线了多长时间,共登录了多少天,两个帖子发布的时间差或者是不同操作之间的日志记录等等。在文章中,简单地举例介绍了PHP中如何计算两个日期相差年、月、日。方法一:/**+----------------------------------------------------------*功能:计算两个日期相差年月
在laravel中,服务容器是一个用于管理类依赖以及实现依赖注入的强有力工具。当应用程序需要使用某一个服务时,服务容器会将服务解析出来,并同时自动解决服务之间的依赖,然后交给应用程序使用。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008