jenssegers / agent
Desktop/mobile user agent parser with support for Laravel, based on Mobiledetect
Fund package maintenance!
jenssegers
Tidelift
Installs: 50 096 730
Dependents: 478
Suggesters: 8
Security: 0
Stars: 4 551
Watchers: 89
Forks: 476
Open Issues: 81
Requires
- php: >=5.6
- jaybizzle/crawler-detect: ^1.2
- mobiledetect/mobiledetectlib: ^2.7.6
Requires (Dev)
- php-coveralls/php-coveralls: ^2.1
- phpunit/phpunit: ^5.0|^6.0|^7.0
Suggests
- illuminate/support: Required for laravel service providers
README
A PHP desktop/mobile user agent parser with support for Laravel, based on Mobile Detect with desktop support and additional functionality.
Installation
Install using composer:
composer require jenssegers/agent
Laravel (optional)
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,
Basic Usage
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
Is?
Check for a certain property in the user agent.
$agent->is('Windows'); $agent->is('Firefox'); $agent->is('iPhone'); $agent->is('OS X');
Magic is-method
Magic method that does the same as the previous is()
method:
$agent->isAndroidOS(); $agent->isNexus(); $agent->isSafari();
Mobile detection
Check for mobile device:
$agent->isMobile(); $agent->isTablet();
Match user agent
Search the user agent with a regular expression:
$agent->match('regexp');
Additional Functionality
Accept languages
Get the browser's accept languages. Example:
$languages = $agent->languages(); // ['nl-nl', 'nl', 'en-us', 'en']
Device name
Get the device name, if mobile. (iPhone, Nexus, AsusTablet, ...)
$device = $agent->device();
Operating system name
Get the operating system. (Ubuntu, Windows, OS X, ...)
$platform = $agent->platform();
Browser name
Get the browser name. (Chrome, IE, Safari, Firefox, ...)
$browser = $agent->browser();
Desktop detection
Check if the user is using a desktop device.
$agent->isDesktop();
This checks if a user is not a mobile device, tablet or robot.
Phone detection
Check if the user is using a phone device.
$agent->isPhone();
Robot detection
Check if the user is a robot. This uses jaybizzle/crawler-detect to do the actual robot detection.
$agent->isRobot();
Robot name
Get the robot name.
$robot = $agent->robot();
Browser/platform version
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.
License
Laravel User Agent is licensed under The MIT License (MIT).
Security contact information
To report a security vulnerability, follow these steps.