Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我可以从用户代理获取Mac OS版本吗?_Php_Macos - Fatal编程技术网

Php 我可以从用户代理获取Mac OS版本吗?

Php 我可以从用户代理获取Mac OS版本吗?,php,macos,Php,Macos,我有一个不同Mac OS版本的应用程序——一个用于el Capitan及以上版本,一个用于el Capitan及以下所有版本 用户(不幸的是)并不总是知道他们在el Cap或Sierra上,并且很难弄清楚 在我的下载页面上,我想向他们展示(如果可能的话)要下载的版本,因此我想使用用户代理字符串来完成这项工作 它似乎可以包含像“英特尔Mac OS X 10_12_3”这样的短语-这是可靠的还是有一个标准?在Apple.com上找不到它。如果是-我可以从哪种形状确定它?我建议您匹配正则表达式 /OS

我有一个不同Mac OS版本的应用程序——一个用于el Capitan及以上版本,一个用于el Capitan及以下所有版本

用户(不幸的是)并不总是知道他们在el Cap或Sierra上,并且很难弄清楚

在我的下载页面上,我想向他们展示(如果可能的话)要下载的版本,因此我想使用用户代理字符串来完成这项工作


它似乎可以包含像“英特尔Mac OS X 10_12_3”这样的短语-这是可靠的还是有一个标准?在Apple.com上找不到它。如果是-我可以从哪种形状确定它?

我建议您匹配正则表达式

/OS X 10[_.](\d+)/

一些浏览器使用
来分隔OSX版本的各个部分,而另一些浏览器使用
,这将匹配任何一种格式。捕获组将包含OS X主要版本号。如果是
11
或更高版本,那么他们应该使用El Capitan版本。

谢谢-看到了,但它已经非常过时,不再需要维护。从该网站的表格中可以看出,每个浏览器的格式都不同。我希望每个浏览器都能保持其通用风格。有些人使用的是
OSX##########
,而有些人使用的是
OSX#######
。谢谢-听起来不错-我会查一下。我不确定是否总是发送此部分,或者是否存在不同的版本(如.和下划线)。您不能总是依赖用户代理,因为用户可以欺骗它。但如果你面对的是天真的用户,而他们没有使用异国浏览器,那么它应该是相当可靠的。