繁体   English   中英

PHP移动浏览器检测?

[英]PHP mobile browser detection?

我需要一种在服务器端检测移动浏览器的方法。 我想要一种方法,几乎​​不需要做任何设置,也不需要维护,但仍然可以(至少非常准确地)为我提供对Android,Mobile Safari和Blackberry浏览器以及Opera之类的浏览器的准确检测。

我希望至少涵盖整个移动市场 ,并且如果花费不多,我实际上会更喜欢几乎所有的市场。

WURLF是移动浏览器检测的最终方法,并且提供了PHP API

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

(编辑:目前浏览器功能项目已关闭,即atm不能选择此答案)

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

您可以从http://browsers.garykeith.com/downloads.asp获得通常最新的browscap.ini版本。

只需阅读标头( 如何读取PHP中的任何请求标头 )并解析/解释该标头以读取“用户代理”即可,您可以找到现有的PHP脚本,也可以仅查找纯正则表达式,帮助确定哪些用户代理是移动的,哪些是普通PC /笔记本电脑。

有许多不同的标头,因为它表示操作系统,因此,将有许多不同的移动操作系统,其中将包含用户代理标头,因此脚本需要包含所有有效标头的列表。

前不久找到了这个库:

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

具有PHP,Java,JavaScript和C#版本。 我将其视为没有依赖项的“轻型”智能手机/平板电脑检测工具,并且会定期进行更新。 尽管代码质量的某些方面有些不稳定,但我对此有不同的看法。

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

基于用户代理字符串的浏览器嗅探总是很不稳定。 我看着WURFL,它压缩了几个MB。 使用它是过大的。 更好的方法是检测网站上正在使用的顶级设备,为这些设备进行设计,然后再进行命名。

Zend Framework最近引入了Zend_Http_UserAgent

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

不幸的是,WURFL对于商业项目而言不再免费。

但是还有OpenDDR及其实验性PHP实现

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

我曾经用来临时存储访问者的ip地址和csrf-session值(用来计算当前访问者)。

而且我注意到,我可以查看访问者使用的是移动设备还是PC,这是有好处的:移动设备的csrf随每次新页面加载而变化,而PC则不会。 ip-addresss都保留。

当然,只有访问者单击两次时,您才检测到移动设备,并且我没有检查它的可靠性(因为我并不是真的需要它),但是它仅适用于php /服务器端。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM