PHP Laravel : How to get client browser/ Device?

First add the package to your composer:

{
    "require": {
        "hisorange/browser-detect": "2.*" // For laravel 5.* versions
        "hisorange/browser-detect": "1.*" // For laravel 4.* versions
    }
}

After the composer update/install add the service provider to your app.php:

'providers' => array(
    // ...
    'hisorange\BrowserDetect\Provider\BrowserDetectService',
    // ...
)

Add the alias to the aliases in your app.php:

'aliases' => array(
    // ...
    'BrowserDetect' => 'hisorange\BrowserDetect\Facade\Parser',
)

You must use personal configurations, just publish the package's configuration files, (plugins.php also published with this)

php artisan vendor:publish

You can get result informations by simply call on the facade.

// You can always get the result object from the facade if you wish to operate with it.
BrowserDetect::detect(); // Will resolve and return with the 'browser.result' container.

// Calls are mirrored to the result object for easier use.
BrowserDetect::browserVersion(); // return '3.6' string.

// Supporting human readable formats.
BrowserDetect::browserName(); // return 'Firefox 3.6' string.

// Or can be objective.
BrowserDetect::browserFamily(); // return 'Firefox' string.

For details: https://github.com/hisorange/browser-detect


I ended using the faster, and simpler way:

$request->header('User-Agent');

Hope it helps someone!


For most of newest laravel versions, this method is working :

Route::get('/agent', function () {
    return request()->userAgent();
});

Use Agent

which let you detect user browser and platform and also browser's/platform's version

https://medium.com/@panjeh/laravel-detector-mobile-browser-name-version-platform-device-robot-crawler-user-language-8499bee7607c

In the new version you can also detect the robots.