我需要一种方法来检测服务器端的移动浏览器。我想要一种方法,要求我做很少的设置,很少维护,但仍然提供准确检测(至少)Android,Mobile Safari和Blackberry浏览器,以及Opera等替代品。
我希望至少覆盖<移动市场的大部分,如果不花费太多,我真的更喜欢几乎所有的市场。
答案 0 :(得分:16)
WURLF是移动浏览器检测的终极方式,PHP API可用。
答案 1 :(得分:15)
我发现这个很容易使用php-mobile-detect
答案 2 :(得分:7)
(编辑:目前浏览器功能项目已关闭,即atm这个答案不是一个选项)
您需要的只是get_browser()和最近的browscap.ini,它将用户代理字符串映射到浏览器/版本及其功能。
获取通常非常新的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不再是免费的商业项目。
答案 9 :(得分:0)
我以前曾经临时存放访客&#39; ip-addresses和csrf-session值(用于计算当前访问者)。
我注意到我有一个副作用,可以看到访问者是使用移动设备还是PC:移动设备的csrf随着每个新的页面加载而变化,而PC没有;并且在两种情况下都保留了ip地址。
当然,如果访问者点击两次并且我没有检查它是多么可靠(因为我并不真的需要它),你只能检测到一个移动设备,但它只是php /服务器端。