解析纯Windows,Mac或其他用户代理的最简单/最轻松的方法是什么?

时间:2013-11-14 05:21:13

标签: php regex logging browser user-agent

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

如果我对将操作系统解析为三个类别感兴趣:WindowsMacOther - 我该如何有效地执行此操作,轻快,快速?

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

你推荐什么?

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

/Win(?:dows )?([^do]{2})\s?(\d+\.\d+)?/