我需要使用PHP查找Chrome版本。
我编码了这个:
$ua = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.60 Safari/537.1";
preg_match( "#Chrome/([0-9]{2})#", $ua, $match );
print_r($match);
其中返回:
Array
(
[0] => Chrome/21
[1] => 21
)
我有两个问题:
这适用于所有 chrome 浏览器吗?(因为$ua是我自己的用户代理。
另外,如何制作模式,使其在数组中仅返回"21"而不是"Chrome/21"和"21"?
这
不适用于所有Chrome浏览器。如果是Chrome版本3怎么办?还是 Chrome 版本 2245?
见我。
我要做的是将您的正则表达式更改为以下内容:
preg_match( "#Chrome/(.+?)'.#", $ua, $match );
这将返回与您现在拥有的内容相同的内容,但它也适用于任何数字版本。
array (
0 => 'Chrome/21.',
1 => '21',
)
您可以在此处进行测试。
至于你的第二个问题,你不能修改preg_match()
来返回这样的值。不过,简单地设置$match = $match[1]
就可以了,而且是完全可以接受的!
- 只要 chrome 不改变他们的 UA,你就会没事的。
-
加:
$match = $match[1];