php - macOS Big Sur 下包含奇怪版本号的用户代理字符串

标签 php firefox safari user-agent macos-big-sur

我使用的是 macOS Big Sur 11.0.1。

我正在尝试使用以下脚本从用户代理获取操作系统版本:

$ua = $_SERVER['HTTP_USER_AGENT'];
echo "User Agent: $ua"; 

使用 Firefox(版本 83.0)的输出:

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:82.0) Gecko/20100101 Firefox/82.0

Safari 输出(版本 14.0.1):

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.1 Safari/605.1.15

所以:

  • Firefox 报告 Mac OS X 10.16
  • Safari 报告 Mac OS X 10.15.6

Firefox 报告的 10.16 版本高于最新的 Catalina 版本 10.15.7。由于没有 Catalina 10.16,因此可以使用它来检测“比最新 Catalina 更新的任何内容”。

但是 Safari 报告的 10.15.6 是 Catalina 的实际版本号,因此 Safari 无法检测到 Big Sur。

有人知道这是怎么回事吗?

IMO 两个浏览器都应该报告 11.0.1。

最佳答案

这是临时更改。

“世界显然还没有为用户代理中的 macOS 11.0 做好准备。由于网络上令人沮丧的 UA 嗅探代码,让我们只报告我们当前的发布版本,直到事情稳定下来。”

https://bugs.webkit.org/show_bug.cgi?id=216593

关于php - macOS Big Sur 下包含奇怪版本号的用户代理字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64929071/

相关文章:

php - 尽管实际为零,但 mysql_fetch_row 返回的值大于零

javascript - 火狐浏览器。如何获取当前加载网站的css javascript文件?

html - iOS Safari 上的字体溢出

CSS 媒体查询在 Safari 浏览器中不起作用

php - PHP 插入到 SQL 的问题

php - 无法使用关键字搜索记录,但该关键字已存在于 MySQL 的表中

php - 如何从 Apache/Php 使用 Wine? - '/var/www' 不属于你

javascript - 使用 Firefox Add-on Sdk 中的类和命名空间

javascript - jQuery 单击事件在移动版 Firefox 中不起作用

javascript - Chrome 正在缓存 API 响应而 Safari 没有