设为首页 收藏本站
查看: 672|回复: 0

[经验分享] php判断客户端浏览器的类型

[复制链接]

尚未签到

发表于 2017-4-8 08:59:41 | 显示全部楼层 |阅读模式
php判断客户端浏览器的类型

1、通过 $_SERVER['HTTP_USER_AGENT'] 来写一个php判断浏览器类型的办法。

function my_get_browser(){
if(empty($_SERVER['HTTP_USER_AGENT'])){
return '命令行,机器人来了!';
}
if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 9.0')){
return 'Internet Explorer 9.0';
}
if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 8.0')){
return 'Internet Explorer 8.0';
}
if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 7.0')){
return 'Internet Explorer 7.0';
}
if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 6.0')){
return 'Internet Explorer 6.0';
}
if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'Firefox')){
return 'Firefox';
}
if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'Chrome')){
return 'Chrome';
}
if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'Safari')){
return 'Safari';
}
if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'Opera')){
return 'Opera';
}
if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'360SE')){
return '360SE';
}
}
这里主要用到了 $_SERVER['HTTP_USER_AGENT'],这个常量是用来检查浏览页面的访问者在用什么操作系统(包括版本号)浏览器(包括版本号)和用户个人偏好。用法很简单,自己在程序里面打印出来看看就明白了。
2、另外 php 判断浏览器的类型还可以通过 php 系统函数 get_browser() 函数,这个函数将会返回用户浏览器的一些性能数据。该函数通过查阅用户的 browscap.ini 文件,来测定用户浏览器的性能。若成功,则该函数返回包含用户浏览器信息的一个对象或一个数组,若失败,则返回 false。
get_browser 语法
get_browser(user_agent,return_array)
这个函数有两个参数,参数意义解释如下:
user_agent 可选。规定 HTTP 用户代理的名称。默认是 $HTTP_USER_AGENT 的值。您可以通过设置 NULL 绕过该参数。
return_array 可选。如果该参数设置为 true,本函数会返回一个数组而不是对象。
对于 php 通过 $_SERVER['HTTP_USER_AGENT'] 和 get_browser 获取的浏览器信息,我们可以通过如下例子来认识一下:

<?php
echo $_SERVER['HTTP_USER_AGENT'] . "<br /><br />";
$browser = get_browser(null,true);
print_r($browser);
?>
结果将输出:
Mozilla/4.0
(compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Array(
[browser_name_regex] => ^mozilla/.\.0
(compatible; msie 6\.0.*;.*windows nt 5\.1.*\.net clr.*).*$
[browser_name_pattern] => Mozilla/?.0
(compatible; MSIE 6.0*;*Windows NT 5.1*.NET CLR*)*
[parent] => IE 6.0
[platform] => WinXP
[netclr] => 1
[browser] => IE
[version] => 6.0
[majorver] => 6
[minorver] => 0
[css] => 2
[frames] => 1
[iframes] => 1
[tables] => 1
[cookies] => 1
[backgroundsounds] => 1
[vbscript] => 1
[javascript] => 1
[javaapplets] => 1
[activexcontrols] => 1
[cdf] => 1
[aol] =>
[beta] =>
[win16] =>
[crawler] =>
[stripper] =>
[wap] =>
[ak] =>
[sk] =>
)
但是通过PHP的get_browser()函数获取客户端浏览器相关信息是有条件的,如果你直接使用一般会报出如下这个错误:
Warning: get_browser() [function.get-browser]: browscap ini directive not set in ……
通过查询 php 手册,得到的解释是:为了使用这个函数,你必须在php.ini文件里面增加一句指向 browscap.ini 文件的配置,browscap.ini文件里面记录了所有已存在的浏览器的类型及其信息,所以你要下载最新的这个文件,下载browscap.ini后放到服务器某个位置,get_browser()在使用时就是将获取的客户端信息与此文件进行对比,如果能找到,则返回相应类型。
由上看来要想使用 get_browser() 获取浏览器类型代价不小啊!
3、另外还有一种php判断浏览器类型的办法,即使用一个国外牛人写的开源代码。国外有个叫mavrick的网站,上面有关于浏览器的项目,一直更新所写的Browser类,我最新看到的这个类可以获取包括iPhone、BlackBerry、win、mac、linux、OS、BeOS等平台上的浏览器信息,功能可以说是十分强大。下载这个文件时要根据自己使用的PHP版本去选择。该类的具体代码自己去下载研究:
browser-v1-9
 这个类的使用方法也很简单,如下:

$obj_browser = new Browser; //创建一个此类的一个实例
$obj_browser->getBrowser(); //调用相关函数,获取浏览器名称
$obj_browser->getPlatform(); //调用相关函数,获取系统名称
$obj_browser->isMobile(); //判断来访者所用设备是iPhone、iPad或者电脑(PC)
转自:http://mychange.name/archives/20 
 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-361737-1-1.html 上篇帖子: PHP SESSION工作原理及如何实现永久保存 下篇帖子: php反序列unserialize的一个小特性
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表