get_browser的替代品?

时间:2012-11-26 15:51:17

标签: php httpbrowsercapabilities

我一直在使用php的get_browser()函数对我的用户进行一些简单的分析,主要用于调试。然而,看来browsercap.ini的维护者,为get_browser提供动力的数据已经退出项目,虽然有些人似乎正在重新启动它,但数据变得非常陈旧。他们正在谈论完全改写,所以我担心它会在它再次出现之前需要一段时间。

有人知道不依赖于browsercap.ini的替代方案吗?

编辑:我很抱歉我的问题含糊不清。我需要这个用于调试,而不是分析。我在Web应用程序中的“报告错误”工具中使用它,它有很多跨浏览器的错误,但我无法控制客户端计算机。这是一个非常古老的应用程序(最初是为IE6构建的),我们一直在尽力使其更新,但跨浏览器问题有时很难找到。

再次感谢您

5 个答案:

答案 0 :(得分:6)

这就是我这样做的方式: 我已经包含了最常见的浏览器。

<?php

function get_browsername() {
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE){
$browser = 'Microsoft Internet Explorer';
}elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome') !== FALSE) {
$browser = 'Google Chrome';
}elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== FALSE) {
$browser = 'Mozilla Firefox';
}elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'Opera') !== FALSE) {
$browser = 'Opera';
}elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'Safari') !== FALSE) {
$browser = 'Apple Safari';
}else {
$browser = 'error'; //<-- Browser not found.
}
return $browser;
}

echo 'Browser is '. get_browsername(); //<-- Display the browser name

if(get_browsername() == 'Google Chrome') { 
// Use the function to check
}

希望这有帮助。

答案 1 :(得分:0)

我刚刚查看了Piwik,这是Google Analytics的开源替代方案,他们依赖于$_SERVER['HTTP_USER_AGENT'];(记录为here),但这与{{{{}}直接相关1}}(记录here)。此外,请记住,浏览器可能会欺骗用户代理,您应该准确描述您要查找的内容。

答案 2 :(得分:0)

如果您只是想获取有关访问者浏览器的信息,那么

https://github.com/ornicar/php-user-agent会提供另一种合理的替代方案(5个月前的最后更新)。

我用它来锁定我的工作内联网(我可以)。

答案 3 :(得分:0)

function get_browsername($userAgent = $_SERVER['HTTP_USER_AGENT']){
    $browsers = array(
                    array("IE", "Microsoft Internet Explorer"),
                    array("Chrome", "Google Chrome"),
                    array("Firefox", "Mozzila Firefox"),
                    array("Opera", "Opera"),
                    array("Safari", "Apple Safari")
                );
    foreach($browsers as $browser){
        if (strpos($userAgent, $browser[0]) !== false)
        return $browser[1];
    }
    return "unknown";
}

答案 4 :(得分:0)

我认为您最好使用解析器lib为您执行此操作,我建议ua-parser。这个lib可以解析你可以遇到的大多数浏览器,但缺点也很明显。这个lib太重了......