我需要在我的网络应用中获取请求浏览器名称。(用于分析)
在核心php中,当我使用$visitor_user_agent=$_SERVER['HTTP_USER_AGENT']
时,它会在使用chrome时返回Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36
字符串。然后preg_match('/Chrome/i', $visitor_user_agent)
可用于了解其是否为chrome。我不确定是否这是查找浏览器名称的有效方法。
我还找到了get_browser链接,但它没有提供浏览器名称。
在cakephp3或核心php中有没有办法获取浏览器名称?
答案 0 :(得分:3)
这将返回用于请求的用户代理:
$this->request->header('User-Agent');
http://book.cakephp.org/3.0/en/controllers/request-response.html
答案 1 :(得分:3)
查看Request
对象的documentation。
您可以使用HTTP_USER_AGENT
方法获取env()
:
$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
}