2012-08-08 28 views
0

我需要使用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」,而不是「鍍鉻/ 21」和「21」?

回答

1

WON」 T適用於所有Chrome瀏覽器。如果它是Chrome版本3會怎麼樣?或Chrome版本2245?

請參閱me

我會做的是改變你的正則表達式如下:

preg_match("#Chrome/(.+?)\.#", $ua, $match); 

這將返回同樣的事情,你現在所擁有的,但它也適用於任何數字版本。

array (
    0 => 'Chrome/21.', 
    1 => '21', 
) 

您可以測試這個here

至於你的第二個問題,你不能修改preg_match()返回這樣的值。簡單設置$match = $match[1]工作正常,但是,完全可以接受!

+0

如果我想要所有數字,該怎麼辦?在這種情況下:'21.0.1180.60' – 2014-01-29 21:25:48

0
  1. 只要Chrome並不會改變他們的UA,你會被罰款
  2. 地址:。

    $匹配= $匹配[1];