13

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

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

4

10 回答 10

16

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

于 2010-09-28T21:29:27.430 回答
15

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

于 2012-04-12T12:25:09.263 回答
7

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

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

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

于 2010-09-28T21:30:42.467 回答
3

只需阅读标头(如何在 PHP 中读取任何请求标头)并解析/解释它以读取“用户代理”,您可能能够找到现有的 PHP 脚本,或者可能只是简单的正则表达式帮助确定哪些用户代理是移动的,哪些是普通的个人电脑/笔记本电脑。

有很多不同的标头,因为它指示操作系统,所以尽可能多的不同移动操作系统会有用户代理标头,因此脚本需要有一个所有有效标头的列表。

于 2010-09-28T21:27:54.717 回答
3

不久前找到了这个库:

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

具有 PHP、Java、JavaScript 和 C# 版本。我认为它是一个“轻量级”的智能手机/平板电脑检测工具,没有依赖关系,并且会定期更新。尽管代码质量的某些方面有点不稳定,但我对此有不同的感觉。

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

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

于 2011-08-19T14:16:11.330 回答
2

Zend Framework最近引入了Zend_Http_UserAgent 。

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

于 2010-11-14T23:05:10.570 回答
2

一个快速的谷歌搜索拿起这些:

http://mobiforge.com/developing/story/lightweight-device-detection-php

http://code.google.com/p/php-mobile-detect/

于 2012-09-26T02:30:17.790 回答
1

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

于 2010-10-13T01:07:41.720 回答
1

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

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

于 2012-12-20T00:38:34.453 回答
0

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

而且我注意到我有一个额外的好处,就是能够查看访问者是使用手机还是 PC:手机的 csrf 会随着每次新页面加载而变化,而 PC 不会;并且 IP 地址在这两种情况下都保留。

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

于 2015-02-20T20:13:29.943 回答