PHP port of ua-parser-modern - detect Browser, Engine, OS, CPU, and Device type/model from User-Agent strings.
All regex patterns are ported 1:1 from the original JavaScript source to ensure identical detection behavior.
- PHP 8.2+
ext-mbstring
composer require flycro/ua-parser-modern-phpuse UaParserModern\UserAgentParser;
$result = UserAgentParser::parse($userAgent);
$result->browser->name; // 'Chrome'
$result->browser->version; // '120.0.0.0'
$result->browser->major; // '120'
$result->os->name; // 'Windows'
$result->os->version; // '10'
$result->device->model; // null
$result->device->type; // null
$result->device->vendor; // null
$result->engine->name; // 'Blink'
$result->engine->version; // '120.0.0.0'
$result->cpu->architecture; // 'amd64'Only parse what you need:
$browser = UserAgentParser::parseBrowser($userAgent);
$browser->name; // 'Chrome'
$browser->version; // '120.0.0.0'
$browser->major; // '120'
$os = UserAgentParser::parseOS($userAgent);
$os->name; // 'Windows'
$os->version; // '10'
$device = UserAgentParser::parseDevice($userAgent);
$engine = UserAgentParser::parseEngine($userAgent);
$cpu = UserAgentParser::parseCPU($userAgent);All result objects implement JsonSerializable:
$result = UserAgentParser::parse($userAgent);
json_encode($result);
// {"ua":"...","browser":{"name":"Chrome","version":"120.0.0.0","major":"120"},...}$result->toArray(); // Full nested array
$result->browser->toArray(); // ['name' => 'Chrome', 'version' => '120.0.0.0', 'major' => '120']All results are readonly value objects:
| Method | Return Type | Properties |
|---|---|---|
parse() |
ParseResult |
ua, browser, device, engine, os, cpu |
parseBrowser() |
BrowserResult |
name, version, major |
parseDevice() |
DeviceResult |
model, type, vendor |
parseEngine() |
EngineResult |
name, version |
parseOS() |
OSResult |
name, version |
parseCPU() |
CPUResult |
architecture |
composer testThis is a PHP port of ua-parser-modern by Anthony Fu, which was forked from my-ua-parser by Matteo Collina, which was a fork of ua-parser-js by Faisal Salman.
The MIT License (MIT). Please see License File for more information.