This library is designed to be used with Flamework, but works standalone too.
Usage:
# single shot
$ret = useragent_decode($ua);
# when decoding in batches
$ret = useragent_decode_cached($ua);
# return structure
$ret = array(
'agent' => 'chrome',
'agent_version' => '15.0.874.121',
'engine' => 'webkit',
'engine_version' => '535.2',
'os' => 'osx',
'os_version' => '10.7.2',
);
agent will be one of the following, with the full version number in agent_version:
chromesafarifirefoxmsiedalvik(android VM, not actually the browser)operanetscapekonquerorblackberry(pre-safari)
engine contains the rendering engine, with the full version number in engine_version:
webkitgeckotridentpresto
os and os_version contain the platform, with the following values:
osx/n.n(.n)iphone/n.n(.n)ipad/n.n(.n)ipod/n.n(.n)windows/xpwindows/xp-x64windows/vistawindows/7linux/i686linux/x86_64android/n.n(.n)blackberry/$model
When a field does not match one of the known values, it will be set to null.
- Not all browsers, rendering engines and platforms are supported - this is by design! Only common agents are included.
- We just return
"linux/i686"rather than e.g."Ubuntu", since most Linux flavors don't give distro, plus nobody cares. - Chromium returns
"chrome"- same thing anyway, plus it has a different version number. - We differentiate iPad, iPhone and iPod, even though they are the same OS. You can easily patch this locally if you don't need to know.