我一直在调查各种用户代理解析器,并对所需的复杂性和大小感到惊讶。
如果我仅对将操作系统解析为三个类别感兴趣:Windows
,Mac
或Other
- 我该如何有效地执行此操作,轻快,快速?
我不关心浏览器,版本或其他任何东西。只是Mac,Windows或其他。
你推荐什么?
这是我到目前为止所拥有的:
if (strpos($user_agent, 'Windows')) $os = 'Windows';
elseif (strpos($user_agent, 'Macintosh')) $os = 'Macintosh';
else $os = 'Other';
这种直截了当的做法有什么危险吗?
答案 0 :(得分:1)
这可能还不够。较旧的Windows版本往往具有WinNT
前缀。查找Win
仅匹配非Windows用户代理。同样适用于Macintosh,仅搜索Mac
。通常它在用户代理中列为Mac OS。
对于Windows检测,这是一个很好的reg exp:
/Win(?:dows )?([^do]{2})\s?(\d+\.\d+)?/