php判断客户端浏览器的类型

巴扎黑
Freigeben: 2016-11-22 15:32:34
Original
1861 Leute haben es durchsucht

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 获取的浏览器信息,我们可以通过如下例子来认识一下:

echo $_SERVER['HTTP_USER_AGENT'] . "

";
$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)


Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!