Php get_browser()在三星galaxy选项卡中使用Opera浏览器时返回Chrome

Php get_browser()在三星galaxy选项卡中使用Opera浏览器时返回Chrome,php,browscap,Php,Browscap,嗨,我正在跟踪使用browsecap.ini访问我的网站的用户的浏览器 下面是我使用的代码 if(isset($message['HTTP_USER_AGENT'])){ $get_browser = get_browser($message['HTTP_USER_AGENT'], true); if (!empty($get_browser)){ $str_values.='".mysql_real_escape_string($get_browse

嗨,我正在跟踪使用browsecap.ini访问我的网站的用户的浏览器

下面是我使用的代码

if(isset($message['HTTP_USER_AGENT'])){
    $get_browser = get_browser($message['HTTP_USER_AGENT'], true);
       if (!empty($get_browser)){
           $str_values.='".mysql_real_escape_string($get_browser['comment'])."'
但当在galaxy选项卡中使用opera浏览器的用户显示为chrome浏览器用户时

有人能帮我纠正这个错误吗


p.S-Im使用browsecap.ini文件的lite版本

您友好地向我提供了一个有问题的mobile Opera浏览器的UA字符串示例:

Mozilla/5.0(Linux; Android 4.1.2;GT-P3100构建/JZO54K)AppleWebKit/537.36(KHTML,像壁虎)Chrome/41.0.2272.81 Safari/537.36 OPR/28.0.1764.90386

由该UA上的
get\u browser()
返回的正则表达式是:

$^mozilla/5.0(.*linux.android.4.1.)applewebkit/*(khtml,类似gecko)。*chrome/41..safari/$

它根本没有检测到Opera浏览器。但是,我发现这个函数也可以运行以获取浏览器名称。第一个检查是UA字符串的“OPR/”片段

当使用上面提供的测试UA运行时,输出为“Opera”



Ref:

任何browsecap和php专家手动输入Opera on Galaxy将发送的用户代理字符串,并尝试跟踪获取浏览器返回的数组输出。我将其获取到浏览器中显示为chrome 41.0的数组。。。所以没有运气你能发布你尝试过的用户代理字符串吗?我想探讨一下为什么会发生这种情况。$\u SERVER['HTTP\u USER\u AGENT']
<?php
function ExactBrowserName() {
    $ExactBrowserNameUA=$_SERVER['HTTP_USER_AGENT'];

    If (strpos(strtolower($ExactBrowserNameUA), "safari/") and strpos(strtolower($ExactBrowserNameUA), "opr/")) {
        // OPERA
        $ExactBrowserNameBR="Opera";
    } ElseIf (strpos(strtolower($ExactBrowserNameUA), "safari/") and strpos(strtolower($ExactBrowserNameUA), "chrome/")) {
        // CHROME
        $ExactBrowserNameBR="Chrome";
    } ElseIf (strpos(strtolower($ExactBrowserNameUA), "msie")) {
        // INTERNET EXPLORER
        $ExactBrowserNameBR="Internet Explorer";
    } ElseIf (strpos(strtolower($ExactBrowserNameUA), "firefox/")) {
        // FIREFOX
        $ExactBrowserNameBR="Firefox";
    } ElseIf (strpos(strtolower($ExactBrowserNameUA), "safari/") and strpos(strtolower($ExactBrowserNameUA), "opr/")==false and strpos(strtolower($ExactBrowserNameUA), "chrome/")==false) {
        // SAFARI
        $ExactBrowserNameBR="Safari";
    } Else {
        // OUT OF DATA
        $ExactBrowserNameBR="OUT OF DATA";
    };

    return $ExactBrowserNameBR;
}
?>