2011-07-07 60 views
1
IE9中的

php中的命令$_SERVER['HTTP_USER_AGENT']只返回 UA字符串如何在IE9中從PHP獲得完整的擴展UserAgent

,在JavaScript中我可以獲得帶有navigator.userAgent屬性的擴展UserAgent

有沒有辦法在PHP中獲取完整的擴展 UserAgent來自IE9?

的目的是獲取我在regitry中放置的字符串: HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ 5.0 \ User Agent \ Post Platform 擴展的UserAgent包含來自regitry的字符串。

Introducing IE9’s User Agent String

回答

0

我不認爲它獲取與頭部信息,唯一的辦法是訪問

navigator.userAgent 

JavaScript和它推到與AJAX服務器。

編輯

或者,使用PHP的函數getallheaders()檢查所有與請求發送的頭。

1

getuserAgent()函數的JavaScript和PHP實現之間的區別在於 - JavaScript與瀏覽器本身通信,而PHP只知道瀏覽器發送給服務器的數據。

PHP中有函數get_browser()(自PHP 4開始),它可以爲您提供服務器可用數據的大部分信息:http://www.php.net/manual/ru/function.get-browser.php。請注意,此功能依賴於browscap.ini,它不包含在PHP中,應該手動更新和安裝。

總之沒有擴展在服務器端可用的用戶瀏覽器信息。

+0

這* *可以工作,但依賴於browsercap.ini被配置,並且它是最新的 – Brian

+0

@Brian:這就是文檔說的,但我應該在我的回覆中提到它,對。總之'get_broswer()'的結果是基於HTTP_USER_AGENT頭的,所以在服務器端沒有* extended *數據可用。 – WASD42

0

在您發佈自己的聯繫,Introducing IE9's User Agent String,它說:

IE9將默認

發送短UA字符串的服務器不會收到長期用戶代理字符串。我能想到的唯一解決方案是使用AJAX發佈,但這確實很安全。人們可以轉向他們的javascript。