我有一个网站。当用户点击特定页面(比如identify.php)时,我想找到客户端正在使用的浏览器类型。浏览器可能是mozilla,IE,Opera,chrome或任何其他手机设备,如SonyEricssonK610i,SAMSUNG-SGH-E370,SonyEricssonT700或NokiaN73-1。
这可以检测用户浏览器吗?
答案 0 :(得分:5)
您需要查看:
$_SERVER['HTTP_USER_AGENT']
它将包含浏览器的User-Agent字符串。请注意,出于兼容性原因,几乎所有浏览器都声称是“Mozilla” - 您需要为该标头中的每个浏览器查找特定文本,例如。 Internet Explorer的“MSIE”。
一些例子:
我的Firefox自称 Mozilla / 5.0(Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.11)Gecko / 2009060215 Firefox / 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; http://bsalsa.com) ; .NET CLR 1.1.4322; .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中的所有技巧,例如。声称是多个版本。
答案 1 :(得分:3)
答案 2 :(得分:2)
您可以查看$_SERVER['HTTP_USER_AGENT']
答案 3 :(得分:2)
我们已经开始使用browsecap并认为这是一个更可靠的解决方案,试图通过自己解析HTTP_USER_AGENT字符串来准确确定浏览器类型。
编辑php.ini文件(或.htaccess文件)以包含:
php_value browscap '/path/to/my/browscap/browscap.ini'
...那么你在php中的函数调用是:
$browser = get_browser(null, true);
答案 4 :(得分:2)
对于手机,请使用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");
}
答案 5 :(得分:1)
$ _ SERVER [ '' HTTP_USER_AGENT'];
答案 6 :(得分:1)
这个超全球变量:
$_SERVER['HTTP_USER_AGENT'];
是你需要的; - )
答案 7 :(得分:1)
PHP提供了一个名为get_browser的函数,它检查用户代理标头并尝试针对白名单猜测浏览器。 它非常有限,但它适用于最常见的浏览器。
如果它不适合您的应用程序,则可能需要创建自定义函数。
答案 8 :(得分:1)
$_SERVER['HTTP_USER_AGENT']
此变量为您提供请求设备的用户代理字符串。从这里开始,你可以使用正则表达式来解决你不应该做的很多原因:
我建议使用Javascript进行功能检查,如jQuery does。
答案 9 :(得分:0)
使用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或其他渲染代理,因为这会影响页面的显示方式。