PHP移动浏览器检测?

时间:2010-09-28 21:22:39

标签: php mobile browser-detection

我需要一种方法来检测服务器端的移动浏览器。我想要一种方法,要求我做很少的设置,很少维护,但仍然提供准确检测(至少)Android,Mobile Safari和Blackberry浏览器,以及Opera等替代品。

我希望至少覆盖<移动市场的大部分,如果不花费太多,我真的更喜欢几乎所有的市场。

10 个答案:

答案 0 :(得分:16)

WURLF是移动浏览器检测的终极方式,PHP API可用。

答案 1 :(得分:15)

我发现这个很容易使用php-mobile-detect

答案 2 :(得分:7)

(编辑:目前浏览器功能项目已关闭,即atm这个答案不是一个选项)

您需要的只是get_browser()和最近的browscap.ini,它将用户代理字符串映射到浏览器/版本及其功能。

您可以从http://browsers.garykeith.com/downloads.asp

获取通常非常新的browscap.ini版本

答案 3 :(得分:3)

只需阅读标题(How do I read any request header in PHP)并解析/解释此内容即可阅读“用户代理”,您可以找到现有的PHP脚本,或者只是简单的正则表达式,这将有助于确定哪些用户代理是移动的,哪些是普通的PC /笔记本电脑。

有许多不同的标题,因为它表示操作系统,因此存在许多不同的移动操作系统,因为存在用户代理标题,因此脚本需要具有所有有效标题的列表。 / p>

答案 4 :(得分:3)

回过头来找到这个图书馆:

http://code.google.com/p/mobileesp/

有PHP,Java,JavaScript和C#版本。我认为它是一种没有依赖性的“轻量级”智能手机/平板电脑检测工具,并且会定期更新。虽然代码质量的某些方面有些不稳定,但我对此感到好奇。

如果你需要更轻量级的东西,WordPress的WP Super Cache插件包含一些你可以刷卡的长正则表达式字符串。

基于用户代理字符串的浏览器嗅探总是不稳定的。我看了WURFL,它是几MB压缩的。使用它是过度的。更好的方法是检测网站上使用的顶级设备,为这些设备设计,然后每天调用它。

答案 5 :(得分:2)

Zend Framework最近介绍了Zend_Http_UserAgent

它可以通过Wurfl,TeraWurfl和DeviceAtlas API检测UserAgent来确定移动设备及其功能。

答案 6 :(得分:2)

答案 7 :(得分:1)

http://code.google.com/p/hdapi/怎么样? PHP中的服务器端移动检测。

答案 8 :(得分:1)

不幸的是,WURFL不再是免费的商业项目。

OpenDDRexperimental PHP implementation

答案 9 :(得分:0)

我以前曾经临时存放访客&#39; ip-addresses和csrf-session值(用于计算当前访问者)。

我注意到我有一个副作用,可以看到访问者是使用移动设备还是PC:移动设备的csrf随着每个新的页面加载而变化,而PC没有;并且在两种情况下都保留了ip地址。

当然,如果访问者点击两次并且我没有检查它是多么可靠(因为我并不真的需要它),你只能检测到一个移动设备,但它只是php /服务器端。