gpt4 book ai didi

php - Web 应用程序需要最低浏览器版本

转载 作者:行者123 更新时间:2023-12-02 04:40:59 25 4
gpt4 key购买 nike

我有一个 PHP 网络应用程序,它在前端需要一些更现代的浏览器功能,例如 MutationObserver .正如网站上所述,只有非常新的浏览器才支持此功能。这同样适用于我需要依赖的一些 HTML5 功能。

我现在想要实现的是使用 UserAgent-String 检查服务器端用户正在运行哪个浏览器,如果它低于特定版本,则将他重定向到一个信息页面,在那里他被告知他应该使用更新的浏览器。

一段时间以来,我一直在尝试设置适当的正则表达式来检查 UA 字符串。然而,我有点卡住了,因为浏览器制造商并不总是保持干净的模式——例如假设对于 Opera 浏览器,我需要至少 12 的版本。

  • Opera 12.14 示例 1:Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14
  • Opera 12.14 示例 2:Mozilla/5.0(Windows NT 6.0;rv:2.0)Gecko/20100101 Firefox/4.0Opera 12.14
    这也可以是 Firefox 4.0。
  • Opera 11.51: Mozilla/5.0(兼容;MSIE 9.0;Windows NT 6.1;de)Opera 11.51
    这也可以是 Internet Explorer 9.0。

跟踪相同的浏览器和版本也很棘手,如 Opera 12.14 的两个示例所示:它是“Version/12.14”或“Opera 12.14”或其他一些漂亮的“随机”字符串。对于其他浏览器,问题非常相似。

所以问题是:您将如何进行?

方法一:
useragentstring.com 有一个 API,我可以在每次用户访问欢迎页面和/或登录时查询它。我不确定这在安全 方面是否是个好主意应用性能

方法二:
PHP 的 get_browser() 函数与 browscap.ini 结合使用。该方法无法区分桌面浏览器和移动浏览器。

方法三:
方法 2 的替代方法可能是 phpbrowscap您可以在其中定义自己的 browsercap.ini,而无需依赖服务器上您无权访问的某个地方的 browscap.ini。

或者其他方法?

我很乐意提出一些意见。

最佳答案

如今,许多开发人员都使用 JavaScript 来查询浏览器中是否提供某项功能,而不是保留您自己的用户代理和功能数据库(这很难做到正确,并且很难保持更新)。

Modernizr JavaScript library使这相对简单。 This article深入探讨为什么这种方法是个好主意,并展示了一些在您不想依赖库的情况下进行特征检测的替代方法。

关于php - Web 应用程序需要最低浏览器版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20843467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com