我有一个网站。当用户点击一个特定的页面(比如说identity.php)时,我想查找客户端正在使用的浏览器的类型。浏览器可能是mozilla,IE,opera,chrome或任何其他移动设备,如SonyEricssonK610i,SAMSUNG-SGH-E370,SonyEricssonT700或NokiaN73-1。在服务器端识别浏览器在php
这是可能检测到用户浏览器?
我有一个网站。当用户点击一个特定的页面(比如说identity.php)时,我想查找客户端正在使用的浏览器的类型。浏览器可能是mozilla,IE,opera,chrome或任何其他移动设备,如SonyEricssonK610i,SAMSUNG-SGH-E370,SonyEricssonT700或NokiaN73-1。在服务器端识别浏览器在php
这是可能检测到用户浏览器?
你需要看看:
$_SERVER['HTTP_USER_AGENT']
,它包含了浏览器的用户代理字符串。请注意,出于兼容性原因,几乎所有浏览器声称是“Mozilla” - 您需要为该标头中的每个浏览器查找特定的文本,例如。 Internet Explorer的“MSIE”。
一些例子:
我的Firefox自称的Mozilla/5.0(窗口; U; Windows NT的5.1; EN-GB; RV:1.9.0.11)的Gecko/2009060215火狐/ 3.0.11(。 NET CLR 4.0.20506)
我的IE7自称的Mozilla/4.0(兼容; MSIE 7.0; Windows NT的5.1; GTB6;用户代理:Mozilla的/ 4.0(兼容; MSIE 6.0; Windows NT的5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 4.0。 20506)
请注意在IE浏览器的所有欺骗,例如。声称是多个版本。
你可以看看$_SERVER['HTTP_USER_AGENT']
$ _ SERVER ['HTTP_USER_AGENT'];
这超全局变量:
$_SERVER['HTTP_USER_AGENT'];
是你需要什么;-)
请注意,您最近需要设置browscap.ini等。 – 2009-07-24 21:55:40
PHP提供了一个名为get_browser的函数,该函数检查用户代理头并尝试猜测浏览器对白名单。 这是相当有限的,但它适用于最常见的浏览器。
如果它不适合您的应用程序,那么您可能需要创建一个自定义函数。
像其他人一样,使用HTTP_USER_AGENT字符串来检测浏览器。下面是它的将是什么样子的例子:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.1 Safari/532.0.
只是记录的值不同的浏览器,然后检查Chrome等关键字。很可能您会想要检查Webkit或其他呈现代理,因为这会影响页面的显示方式。
我们使用browsecap开始,并认为它是试图通过解析字符串HTTP_USER_AGENT自己准确的判断浏览器类型更可靠的解决方案。
编辑php.ini文件(或.htaccess文件),包括:
php_value browscap '/path/to/my/browscap/browscap.ini'
...在PHP那么你的函数调用:
$browser = get_browser(null, true);
$_SERVER['HTTP_USER_AGENT']
这个变量为您提供请求设备的用户代理字符串。从这里,你可以使用正则表达式来的原因cheThe数,你不应该这样做很丰富:
我建议做能力的JavaScript检查,为jQuery does。
对于手机,使用WURFL
$myDevice = new wurfl_class($wurfl, $wurfl_agents);
$myDevice->GetDeviceCapabilitiesFromAgent($_SERVER["HTTP_USER_AGENT"]);
if ($myDevice->is_wireless_device) {
header("Content-Type: text/vnd.wap.wml");
}
请注意,此信息是由客户端发送,并可以设置为任何(一个可以把“Hellon世界!”在里面,如果他想);因此,您可以**尝试**来检测用户代理,但是您的应用程序必须始终工作,而不取决于此信息! – 2009-07-24 22:12:11