PHP Laravel:如何获取客户端浏览器/设备?

Hol*_*ola 3 php laravel laravel-5

我正在构建一个laravel应用程序,我想跟踪客户端浏览器的详细信息,例如浏览器名称。我如何使用Laravel做到这一点?

public function postUser(Request $request)
    {        
            $user = new User();                                 
            $user->name = $request->Input(['name']);           
            $device=   $request->header('User-Agent');
            dd($device);
            $user->save();            
            return redirect('userSavePage');          
    }
Run Code Online (Sandbox Code Playgroud)

我已经用过了, $device= $request->header('User-Agent'); 但是当我在dd()输出时,我得到的是这样的:

"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"
Run Code Online (Sandbox Code Playgroud)

如何获得实际的浏览器详细信息?

小智 11

我结束了使用更快,更简单的方法:

$request->header('User-Agent');
Run Code Online (Sandbox Code Playgroud)

希望它能对某人有所帮助!


小智 9

首先将包添加到您的作曲家:

{
    "require": {
        "hisorange/browser-detect": "2.*" // For laravel 5.* versions
        "hisorange/browser-detect": "1.*" // For laravel 4.* versions
    }
}
Run Code Online (Sandbox Code Playgroud)

在 Composer 更新/安装后,将服务提供者添加到您的 app.php:

'providers' => array(
    // ...
    'hisorange\BrowserDetect\Provider\BrowserDetectService',
    // ...
)
Run Code Online (Sandbox Code Playgroud)

将别名添加到 app.php 中的别名中:

'aliases' => array(
    // ...
    'BrowserDetect' => 'hisorange\BrowserDetect\Facade\Parser',
)
Run Code Online (Sandbox Code Playgroud)

必须使用个人配置,只发布包的配置文件,(plugins.php也用这个发布)

php artisan vendor:publish
Run Code Online (Sandbox Code Playgroud)

您可以通过简单地调用门面来获取结果信息。

// 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.
Run Code Online (Sandbox Code Playgroud)

详情:https : //github.com/hisorange/browser-detect


sid*_*aha 8

对于大多数最新的 Laravel 版本,此方法有效:

Route::get('/agent', function () {
    return request()->userAgent();
});
Run Code Online (Sandbox Code Playgroud)