【问题标题】:Can't get Opera as browser无法将 Opera 作为浏览器
【发布时间】:2014-01-23 02:50:03
【问题描述】:

我有这个代码位来获取用户使用的浏览器

$browserArray = array(
    'Windows Mobile' => 'IEMobile',
    'Android Mobile' => 'Android',
    'iPhone Mobile' => 'iPhone',
    'Firefox' => 'Firefox',
    'Opera' => 'OPR',
    'Google Chrome' => 'Chrome',
    'Internet Explorer' => 'MSIE',
    'Opera' => 'Opera',
    'Safari' => 'Safari'
); 
foreach ($browserArray as $k => $v) {

if (preg_match("/$v/", $agent)) {
     break;
}   else {
 $k = "Unknown";
}
} 
$browser = $k;

但我无法获取 Opera,它将 Opera 作为 Chrome 返回。

Opera 的代理是“Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 OPR/18.0.1284.68”

我怎样才能让它知道 Opera 是 Opera 而不是 Chrome?

【问题讨论】:

标签: php


【解决方案1】:

您的数组声明中有两个 Opera 键:

'Opera' => 'OPR',
'Opera' => 'Opera',

第二个是覆盖 firs,所以实际上你的数组看起来像:

$browserArray = array(
    'Windows Mobile' => 'IEMobile',
    'Android Mobile' => 'Android',
    'iPhone Mobile' => 'iPhone',
    'Firefox' => 'Firefox',
    'Opera' => 'Opera',
    'Google Chrome' => 'Chrome',
    'Internet Explorer' => 'MSIE',
    'Safari' => 'Safari'
);  

所以您缺少 OPR 标识符,而 Chrome 是与您的代理匹配的那个。

【讨论】:

    【解决方案2】:

    更简单的方法:

    print_r(get_browser());
    

    输出类似的东西:

        Array
        (
        [browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
        [browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
        [parent] => Firefox 0.9
        [platform] => WinXP
        [browser] => Firefox
        [version] => 0.9
        [majorver] => 0
        [minorver] => 9
        [cssversion] => 2
        [frames] => 1
        [iframes] => 1
        [tables] => 1
        [cookies] => 1
        [backgroundsounds] =>
        [vbscript] =>
        [javascript] => 1
        [javaapplets] => 1
        [activexcontrols] =>
        [cdf] =>
        [aol] =>
        [beta] => 1
        [win16] =>
        [crawler] =>
        [stripper] =>
        [wap] =>
        [netclr] =>
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-11
      • 1970-01-01
      • 2014-03-24
      • 2019-05-08
      相关资源
      最近更新 更多