2012-05-23 57 views
-5

可能重複:
How can I detect the browser with PHP or JavaScript?如何檢測瀏覽器?

我需要顯示在不同的瀏覽器(IE瀏覽器,火狐,Chrome,Safari和Opera)不同的信息。所以我需要一種方法來檢測用戶的瀏覽器。 在我的情況下,最好的方法是什麼?

我可以使用PHP或Javascript,但我想避免使用外部庫,如jQuery。

謝謝:)

+4

[搜索先請。(http://stackoverflow.com/search?q=%5Bphp%5D+detect+browser) –

+1

重要問題 - 爲什麼?你應該能夠爲任何瀏覽器提供相同的網站。 – 2012-05-23 03:04:45

回答

5

瀏覽器檢測確實是一個不可靠的做法,並且應該避免。話雖如此,您通常可以通過在JavaScript中嗅探navigator.userAgent開始,或者檢查userAgent(或get_browser()),因爲它會將請求發送到您的服務器。

但是,不要這樣做 - 請(爲小馬)。改用功能檢測。諸如Modernizr之類的工具使得您只需支持它就可以輕鬆提供內容,並且可以針對瀏覽器之間的差異進行編碼。

+0

爲什麼是不可靠的做法?許多網站都這樣做。 – xRobot

+1

@xRobot由於用戶代理字符串不是不可變的,所以可以更改它。此外,用戶代理字符串從一個版本到另一個版本不斷變化。你甚至會讓瀏覽器冒充其他瀏覽器來解決一些開發人員設置的愚蠢障礙。瀏覽器中的插件也可以修改用戶代理字符串。 – Sampson

+0

好的謝謝,但我需要這樣做。在你看來,如何pinterest做到這一點:https://pinterest.com/about/goodies/ – xRobot

0

您可以使用以下方法:

PHP

$agent = $_SERVER["HTTP_USER_AGENT"]; 
if (preg_match("/MSIE/i",$agent)) { echo "its ie!"; } 

的JavaScript

navigator.appName 
navigator.appVersion 

你可以結合/交叉檢查,並開始做一個大的if/else塊 與你找到的一切。

還要檢查here 但我同意,這是不100%可靠