【问题标题】:PHP mobile browser detection?PHP移动浏览器检测?
【发布时间】:2011-04-18 13:04:58
【问题描述】:

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

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

【问题讨论】:

  • 'little to maintain' 将会很困难,因为我们拥有的唯一半可靠的方式是用户代理字符串,它在 new(er ) 版本。但是,我确实想知道您预期的“碰撞”?
  • 我想会的。但是,哦,哈,这是尝试从 htc 梦想中发布的结果。应该只是“检测”
  • 非常类似于stackoverflow.com/questions/6636306/mobile-browser-detection,它接受的答案可能对你有用,它基于下面@Rick 的建议,虽然它可能需要一些维护

标签: php mobile browser-detection


【解决方案1】:

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

【讨论】:

  • +1,让我补充一下,它会经常使用新设备和设备功能进行更新
  • 我只是想在这里指出(对于任何追随我的人)WURLF 需要 PEAR Log 库
  • 不幸的是,PHP 库的更新频率似乎不如 Java 库。我刚刚下载了它,它错误地将 android 上的 chrome 识别为桌面。我会寻找不同的库
  • WURFL 不再免费用于商业用途。他们每年收取淫秽的费用来使用他们的服务
【解决方案2】:

我发现这个非常好用php-mobile-detect

【讨论】:

  • 它定期更新,使用简单,也由 BrowserStack 赞助 - 看起来像一个不错的库。
  • @tonyhb ...当您说它定期更新时,我不明白它是如何更新的,因为我将它(Mobile_Detect.php 文件)下载到我的计算机上。你的意思是我需要定期返回下载站点来检查更新的版本吗?
  • 是的,您需要定期重新下载文件以确保您是最新的。
【解决方案3】:

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

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

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

【讨论】:

    【解决方案4】:

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

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

    【讨论】:

    • 嘿,谢谢你的回复,但我真的更想找一个图书馆来避免这种乏味的工作......
    • 你可以检查变量$_SERVER['HTTP_USER_AGENT']
    【解决方案5】:

    不久前发现了这个库:

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

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

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

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

    【讨论】:

      【解决方案6】:
      【解决方案7】:

      Zend Framework 最近推出了Zend_Http_UserAgent

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

      【讨论】:

        【解决方案8】:

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

        【讨论】:

          【解决方案9】:

          很遗憾,WURFL 不再免费用于商业项目。

          但是有OpenDDR 和它的experimental PHP implementation

          【讨论】:

            【解决方案10】:

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

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

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

            【讨论】:

              猜你喜欢
              • 2011-10-01
              • 2019-10-09
              • 2015-09-26
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-03-03
              相关资源
              最近更新 更多