2

我一直在使用 php 的get_browser()函数对我的用户进行一些简单的分析,主要用于调试。然而,似乎 browsercap.ini 的维护者,为 get_browser 提供动力的数据已经退出了该项目,虽然有些人似乎正在努力重新启动它,但数据变得非常陈旧。他们正在谈论彻底重写,所以我担心它需要很长时间才能再次开始。

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

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

再次感谢你

4

5 回答 5

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
}

希望这可以帮助。

于 2013-05-13T12:55:15.820 回答
0

我刚刚看了一下Piwik,它是 Google Analytics 的开源替代品,它们依赖于$_SERVER['HTTP_USER_AGENT'];在此处记录),但这与get_browser在此处记录)直接相关。另外,请记住,浏览器可能会谎报其用户代理,您应该准确描述您要查找的内容。

于 2012-11-26T16:07:26.953 回答
0

如果您只想获取有关访问者浏览器的信息,https://github.com/ornicar/php-user-agent提供了一个相当最新的替代方案(最后一次更新是 5 个月前)。

我用它来将 IE 锁定在我们工作的 Intranet 之外(因为我可以)。

于 2012-11-26T16:17:19.793 回答
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";
}
于 2013-09-30T16:20:45.950 回答
0

我认为您最好使用解析器库为您执行此操作,我推荐ua-parser。这个库可以解析你能遇到的大部分浏览器,但缺陷也很明显。这个库太重了……

于 2015-08-21T10:52:11.047 回答