【问题标题】:Code to parse user agent string?解析用户代理字符串的代码?
【发布时间】:2011-01-08 12:43:36
【问题描述】:

虽然我觉得很奇怪,但我无法在任何地方找到一个好的 PHP 函数来智能解析用户代理字符串?现在用 Google 搜索了大约 20 分钟。

我已经有了字符串,我只需要一些可以将它切碎并至少给我浏览器/版本/操作系统的东西。

知道哪里有好的sn-p吗?

【问题讨论】:

  • 是的,我知道我可以自己写,但我现在真的没有时间。我需要一些可以插入并使用的东西来完成这个项目。
  • get_browser() 很老很慢。在此处使用其中一个解析器 github.com/ThaDafinser/UserAgentParser
  • 警告不要使用上面建议的库 (TheDafinser)。它似乎可以通过将请求推送到另一个站点 (useragentstring.com) 来工作,正如我们所说的那样,该站​​点已关闭!!!!由于我在某处使用它,它像没有人的业务一样减慢了我的网站,因为请求必须运行直到超时。被警告

标签: php parsing user-agent string-parsing


【解决方案1】:

get_browser() 函数在 PHP 中已经存在很长时间了。

PHP手册是免费的,可以多种格式下载和在线查看(使用cmets)

【讨论】:

  • 这将是一个完美的例子,说明熬夜超过两天会影响记忆力,并导致你就你已经知道的功能提出极其愚蠢的问题。 :) 谢谢
  • 下面的帖子 (github.com/garetjax/phpbrowscap) 是 PHP 手册建议的内容。
  • 在 php 中启用get_browser() 函数时是否有任何性能损失?
  • @Bhavesh:这是一个非常复杂的问题。幸运的是,它有一个非常简单的答案:测量它:)
  • 忘记提及,为了使用该功能,您需要一个 ~10MB 的 php_browscap.ini 文件。 - 否则会出现这个错误:browscap ini directive not set
【解决方案2】:

https://github.com/browscap/browscap-php - 这是一个独立的库,旨在替换 get_browser 函数。对于共享主机,这似乎是一个更好的选择。

适用于:PHP 5

【讨论】:

    【解决方案3】:

    您可以尝试使用:https://github.com/tobie/ua-parser。这是解析用户代理字符串的多语言工具。对于 PHP 在这里:https://github.com/tobie/ua-parser/tree/master/php

    【讨论】:

      【解决方案4】:

      试试ThaDafinser/UserAgentParser,它是许多可用用户代理解析器的抽象。

      因此,如果您对其中一个不满意 - 只需切换到另一个(或组合它们)

      你可以try it out here

      【讨论】:

      • 当他们抛出处理请求的网站关闭时给了我很多问题。它严重降低了我的网站速度。
      • 那么你可能会使用像“useragentstring.com”这样的远程解析器(最近已经关闭了)。当然,这会减慢您的网站速度。当您依赖速度时,您可以使用本地解析器。见github.com/ThaDafinser/UserAgentParser#local-providers
      【解决方案5】:

      我发现了一个 PHP 类库,它对我来说非常有效。它在下面的链接中。

      https://www.toms-world.org/blog/parseuseragentstring

      它是轻量级的,只是以内存友好的方式执行我想要的(浏览器、版本、操作系统、移动/PC 等等)。

      【讨论】:

        猜你喜欢
        • 2010-10-29
        • 1970-01-01
        • 2013-06-22
        • 2012-03-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-06
        • 2018-02-23
        相关资源
        最近更新 更多