Desktop/mobile user agent parser with support for Laravel, based on Mobiledetect
jenssegers/agent is a Laravel package for desktop/mobile user agent parser with support for laravel, based on mobiledetect.
It currently has 4.817 GitHub stars and 73.272.745 downloads on Packagist (latest version v2.6.4).
Install it with composer require jenssegers/agent.
Discover more Laravel packages by jenssegers
or browse all Laravel packages to compare alternatives.
Last updated
A PHP desktop/mobile user agent parser with support for Laravel, based on Mobile Detect with desktop support and additional functionality.
Install using composer:
composer require jenssegers/agent
Add the service provider in config/app.php:
Jenssegers\Agent\AgentServiceProvider::class,
And add the Agent alias to config/app.php:
'Agent' => Jenssegers\Agent\Facades\Agent::class,
Start by creating an Agent instance (or use the Agent Facade if you are using Laravel):
use Jenssegers\Agent\Agent;
$agent = new Agent();
If you want to parse user agents other than the current request in CLI scripts for example, you can use the setUserAgent and setHttpHeaders methods:
$agent->setUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2');
$agent->setHttpHeaders($headers);
All of the original Mobile Detect methods are still available, check out some original examples at https://github.com/serbanghita/Mobile-Detect/wiki/Code-examples
Check for a certain property in the user agent.
$agent->is('Windows');
$agent->is('Firefox');
$agent->is('iPhone');
$agent->is('OS X');
Magic method that does the same as the previous is() method:
$agent->isAndroidOS();
$agent->isNexus();
$agent->isSafari();
Check for mobile device:
$agent->isMobile();
$agent->isTablet();
Search the user agent with a regular expression:
$agent->match('regexp');
Get the browser's accept languages. Example:
$languages = $agent->languages();
// ['nl-nl', 'nl', 'en-us', 'en']
Get the device name, if mobile. (iPhone, Nexus, AsusTablet, ...)
$device = $agent->device();
Get the operating system. (Ubuntu, Windows, OS X, ...)
$platform = $agent->platform();
Get the browser name. (Chrome, IE, Safari, Firefox, ...)
$browser = $agent->browser();
Check if the user is using a desktop device.
$agent->isDesktop();
This checks if a user is not a mobile device, tablet or robot.
Check if the user is using a phone device.
$agent->isPhone();
Check if the user is a robot. This uses jaybizzle/crawler-detect to do the actual robot detection.
$agent->isRobot();
Get the robot name.
$robot = $agent->robot();
MobileDetect recently added a version method that can get the version number for components. To get the browser or platform version you can use:
$browser = $agent->browser();
$version = $agent->version($browser);
$platform = $agent->platform();
$version = $agent->version($platform);
Note, the version method is still in beta, so it might not return the correct result.
Laravel User Agent is licensed under The MIT License (MIT).
To report a security vulnerability, follow these steps.