2012-11-26 50 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。這個庫可以解析大部分可以滿足的瀏覽器,但缺陷也很明顯。這個庫太重了...