使用PHP获取浏览器类型

pol*_*ron 1 php regex

我正在尝试编写一个为不同浏览器调用某些函数的类.我想要做的是创建一个switch语句,接受从正则表达式中提取的(CHROME,SAFARI,FIREFOX,MSIE等).

我对正则表达式部分感到难过.我创建了命名组,但我无法弄清楚如何获取找到的命名组.

$subject = 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.63 Safari/534.3';

preg_match('/(?:(?P<CHROME>Chrome)|(?P<MSIE>MSIE)|(?P<IPHONE>iPhone)|(?P<FIREFOX>Firefox)|(?P<SAFARI>Safari))/', $subject, $regs);
Run Code Online (Sandbox Code Playgroud)

这是我运行时得到的.

$regs = Array
(
   [0] => Chrome
   [CHROME] => Chrome
   [1] => Chrome
)
Run Code Online (Sandbox Code Playgroud)

我想使用$ regs切换,但是在正则表达式之后键都被搞砸了.我是以正确的方式来做这件事的吗?如何确保从数组中的键中拉出CHROME?

Vol*_*erK 6

get_browser()

返回值的一个要素browser似乎是您正在寻找的.
您可以从http://browsers.garykeith.com/downloads.asp获取更新至今的browscap.ini(其中包含用于标识浏览器/使用代理字符串的模式)