如何在CakePHP3请求中获取浏览器名称?
我需要在我的web应用程序中获取请求浏览器名称。(用于分析) 在核心php中,当我使用如何在CakePHP3请求中获取浏览器名称?,php,cakephp-3.0,Php,Cakephp 3.0,我需要在我的web应用程序中获取请求浏览器名称。(用于分析) 在核心php中,当我使用$visitor\u user\u agent=$\u SERVER['HTTP\u user\u agent']时,它返回Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,像Gecko)Chrome/43.0.2357.130 Safari/537.36字符串,然后与Chrome一起使用preg\u match('/Chrome/I',$vis
$visitor\u user\u agent=$\u SERVER['HTTP\u user\u agent']
时,它返回Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,像Gecko)Chrome/43.0.2357.130 Safari/537.36
字符串,然后与Chrome一起使用preg\u match('/Chrome/I',$visitor\u user\u agent)
可以用来知道它是否是chrome。我不确定这是否是查找浏览器名称的有效方法
我也找到了链接,但它没有给出浏览器名称
在cakephp3或core php中是否有获取浏览器名称的方法?这将返回用于请求的用户代理:
$this->request->header('User-Agent');
查看请求的对象
您可以使用env()
方法获取HTTP\u USER\u 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
}
因此,基本上,逻辑与我在上面的核心php中解释的相同,但它是cakephp3的实现方式。env()
不推荐使用。改用getEnv()
。