Вопрос

I've been investigating various user agent parsers and have been surprised at the complexity and size required.

If I'm only interested in parsing for the OS into three categories: Windows, Mac, or Other — how can I do this efficiently, lightly, and quickly?

I don't care about browsers, versions, or anything else. Just Mac, Windows or Other.

What do you recommend?

Here's what I have so far:

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

Any danger in this straight forward approach?

Это было полезно?

Решение

This might not be enough. Older Windows versions tend to have WinNT prefix instead. Looking for Win only also match non-windows user agents. Also for Macintosh, search for Mac only. Usually it is listed as Mac OS in user agents.

This is a good reg exp for Windows detection:

/Win(?:dows )?([^do]{2})\s?(\d+\.\d+)?/
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top