2012-11-26 17 views
1

我一直在使用php的get_browser()函数来对我的用户做一些浅析浅析,主要是为了调试。但是,bro​​wsercap.ini的维护者,支持get_browser的数据似乎已经退出了项目,而有些人似乎正在重新启动它,数据变得非常陈旧。他们正在谈论全面改写,所以我担心在它重新开始之前需要一段时间。替代get_browser?

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

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

再次感谢您

+0

它仍然维护(http://browscap.org/)。但不要使用'get_browser'。更好地使用高性能提供商https://github.com/ThaDafinser/UserAgentParser – ThaDafinser

回答

5

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

<?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 
} 

希望这会有所帮助。

0

我只是看了一眼Piwik,这是一个开源替代谷歌Analytics(分析),他们依靠$_SERVER['HTTP_USER_AGENT'];(记录here),但它直接连接到get_browser(记录here)。另外,请记住,浏览器可以说谎他们的用户代理,你应该确切地描述你在找什么。

0

https://github.com/ornicar/php-user-agent如果您只想获取关于访问者浏览器的信息,可以提供一个可以合理选择的替代方案(最近5个月前更新)。

我已经用它来锁定IE离开我们的工作Intranet(COS我可以)。

+0

不再维护 – ThaDafinser

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"; 
} 
0

我想你最好使用解析器LIB为你做到这一点,我建议ua-parser。这个库可以解析大部分可以满足的浏览器,但缺陷也很明显。这个库太重了...