如何在 cakephp 3 请求中获取浏览器名称?

How to get browser name in cakephp 3 request?

我需要在我的网络应用程序中获取请求浏览器的名称。(用于分析)

在核心php中,当我使用$visitor_user_agent=$_SERVER['HTTP_USER_AGENT']时,returns Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36字符串与chrome.And一起使用时,preg_match('/Chrome/i', $visitor_user_agent)可用于知道它是 chrome 还是 not.I 我不确定这是否是查找浏览器名称的有效方法。

我也找到了 get_browser link 但它没有提供浏览器名称。

在 cakephp3 或 core php 中有没有办法获取浏览器名称?

这将 return 用于请求的用户代理:

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

http://book.cakephp.org/3.0/en/controllers/request-response.html

查看 Request 个对象的 documentation

您可以使用env()方法获得HTTP_USER_AGENT

$this->request->env('HTTP_USER_AGENT');

您还可以准备自定义检测器:

$this->request->addDetector(
    'chrome',
    ['env' => 'HTTP_USER_AGENT', 'pattern' => '/Chrome/i']
);

然后在控制器中使用 is() 方法如下:

if($this->request->is('chrome')) {
    // do stuff for chrome
}