0

我一直在研究各种用户代理解析器,并对所需的复杂性和大小感到惊讶。

如果我对将操作系统解析为三个类别感兴趣:WindowsMacOther- 我怎样才能高效、轻松、快速地完成此操作?

我不关心浏览器、版本或其他任何东西。只是 Mac、Windows 或其他。

你有什么建议吗?

这是我到目前为止所拥有的:

if (strpos($user_agent, 'Windows')) $os = 'Windows';
elseif (strpos($user_agent, 'Macintosh')) $os = 'Macintosh';
else $os = 'Other';

这种直截了当的方法有什么危险吗?

4

1 回答 1

1

这可能还不够。较旧的 Windows 版本往往有WinNT前缀。只寻找Win也匹配非windows用户代理。同样对于 Macintosh,Mac仅搜索。通常它在用户代理中被列为 Mac OS。

这是一个很好的用于 Windows 检测的 reg exp:

/Win(?:dows )?([^do]{2})\s?(\d+\.\d+)?/
于 2013-11-14T05:27:09.390 回答