2015-04-24 4 views
1

Привет Im отслеживания браузеров пользователей, которые посещают мой сайт с использованием browsecap.iniget_browser() возвращает Chrome при использовании браузера Opera на вкладке Samsung Galaxy

Ниже приведен код, который я использую

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'])."' 

Но когда пользователи, которые используют браузер Opera в закладке галактики показаны как пользователи хром браузера

может кто-нибудь помочь мне исправить эту Иссе

PS - Im используя облегченную версию browsecap.ini файла

+0

любые browsecap и PHP эксперты –

+0

Попробуйте вручную ввести строку агента пользователя, что Opera на Galaxy будет посылать и попытаться проследить вывод массива, get_browser возвращает – Drakes

+0

я получил его в массив он говорит chrome 41.0 в браузере ... так что не удача –

ответ

1

Вы любезно предоставил мне образец UA строкой нарушившего мобильного браузера Opera:

Mozilla/5.0 (Linux;  Android 4.1.2 ; GT-P3100 Build/JZO54K) AppleWebKit/537,36 (KHTML, как Gecko) Chrome/41.0.2272.81 Safari/537,36 OPR/28.0.1764.90386

и регулярное выражение, возвращенное get_browser() на том UA является:

$^mozilla/5.0 (. * Linux. android.4.1.) яблочныйwebkit /.* (khtml, подобный gecko). * Хром/41 .. сафари /. $

, который вообще не обнаружил браузер Opera. Однако я нашел эту функцию, которую вы также можете запустить, чтобы получить имя браузера. Самая первая проверка для этого «OPR/» фрагмента строки UA.

При запуске с испытанием UA, поставляемым выше, выход «Opera».

<?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; 
} 
?> 

Ref: How to get exact browser name and version?

Смежные вопросы