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
)

2 つの質問があります。

これはすべての chrome ブラウザで動作しますか? ($ua は私自身のユーザー エージェントであるためです。

また、配列内の「Chrome/21」と「21」ではなく、「21」のみを返すようにパターンを作成するにはどうすればよいですか?

4

2 に答える 2

1

これは、すべての Chrome ブラウザーで機能するわけではありません。Chrome バージョン 3 の場合はどうなりますか? または Chrome バージョン 2245?

また

私がすることは、正規表現を次のように変更することです。

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

これは現在のものと同じものを返しますが、任意の数字のバージョンでも機能します。

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

これはここでテストできます。

2 番目の質問については、preg_match()そのような値を返すように変更することはできません。ただし、設定するだけで$match = $match[1]問題なく動作し、完全に受け入れられます。

于 2012-08-08T18:58:51.377 に答える
0
  1. Chrome が UA を変更しない限り、問題はありません。
  2. 追加:

    $match = $match[1];

于 2012-08-08T18:34:40.687 に答える