使用PHP检测Mac OS版本

时间:2013-05-20 16:33:17

标签: php macos operating-system user-agent

我已经创建了一个脚本来在互联网的帮助下检测操作系统版本的Windows,但现在我被困在检测Mac OS版本。我没有Mac OS来测试代码并找出使用什么和搜索谷歌并没有真正帮助我。 这些是我在Wiki上找到的版本:LINK

使用Windows我发现了例如: windows nt 6.1 = Windows 7.

if (preg_match('/windows nt 6.1/i', $user_agent)) {

            $platform .= ' 7';

        }

如何检测Mac的数量版本? 这是我唯一的一部分,但它并不准确适用于所有版本:

if (preg_match('/macintosh|mac os x/i', $user_agent)) {

    $platform = 'Mac';

} 
    if (preg_match('/mac_powerpc/i', $user_agent)) {

        $platform .= ' OS 9';

    } elseif (preg_match('/macintosh/i', $user_agent)) {

        $platform .= ' OS X';

    }

1 个答案:

答案 0 :(得分:3)

如果您想获得精确的结果并且今天仍然回家,请切换到UAparser库: https://github.com/ua-parser/uap-php

从他们的手册:

require_once 'vendor/autoload.php';
use UAParser\Parser;

$ua = "Mozilla/5.0 (Macintosh; Intel Ma...";

$parser = Parser::create();
$result = $parser->parse($ua);

print $result->ua->family;            // Safari
print $result->ua->major;             // 6
print $result->ua->minor;             // 0
print $result->ua->patch;             // 2
print $result->ua->toString();        // Safari 6.0.2
print $result->ua->toVersion();       // 6.0.2

print $result->os->family;            // Mac OS X
print $result->os->major;             // 10
print $result->os->minor;             // 7
print $result->os->patch;             // 5
print $result->os->patchMinor;        // [null]
print $result->os->toString();        // Mac OS X 10.7.5
print $result->os->toVersion();       // 10.7.5

print $result->device->family;        // Other

print $result->toString();            // Safari 6.0.2/Mac OS X 10.7.5
print $result->originalUserAgent;     // Mozilla/5.0 (Macintosh; Intel Ma...

如果您使用this,请使用composer包:

"require": { 
    "ua-parser/uap-php": "dev-master"
}