php определить мобильные браузеры

Discussion in 'PHP' started by tester_new, 12 Jun 2012.

  1. tester_new

    tester_new Elder - Старейшина

    Joined:
    12 Feb 2012
    Messages:
    300
    Likes Received:
    45
    Reputations:
    24
    Есть функция в которую попытался вставить определения браузеров с мобильных(пытаюсь определить по слову 'Mobile') устройств... прошу помощи)

    Code:
    function user_browser($agent) {
    	preg_match("/(mobile|Mobile|MSIE|Opera|Firefox|Chrome|Version|Opera Mini|Netscape|Konqueror|SeaMonkey|Camino|Minefield|Iceweasel|K-Meleon|Maxthon)(?:\/| )([0-9.]+)/", $agent, $browser_info); 
            list(,$browser,$version) = $browser_info;
    
            if ($browser == 'Mobile' || $browser == 'mobile') 
               return $browser;
            
            if (preg_match("/Opera ([0-9.]+)/i", $agent, $opera)) return 'Opera '.$opera[1]; 
            if ($browser == 'MSIE') { 
                    preg_match("/(Maxthon|Avant Browser|MyIE2)/i", $agent, $ie); 
                    if ($ie) return $ie[1].' based on IE '.$version; 
                    return 'IE '.$version;
            }
            if ($browser == 'Firefox') {
                    preg_match("/(Flock|Navigator|Epiphany)\/([0-9.]+)/", $agent, $ff);
                    if ($ff) return $ff[1].' '.$ff[2];
            }
            if ($browser == 'Opera' && $version == '9.80') return 'Opera '.substr($agent,-5); 
            if ($browser == 'Version') return 'Safari '.$version;
            if (!$browser && strpos($agent, 'Gecko')) return 'Browser based on Gecko';
            return $browser.' '.$version;
    }
    
     
    #1 tester_new, 12 Jun 2012
    Last edited: 12 Jun 2012
  2. .Varius

    .Varius Elder - Старейшина

    Joined:
    5 May 2009
    Messages:
    558
    Likes Received:
    289
    Reputations:
    42
    Code:
    RewriteCond %{HTTP_ACCEPT} "text/vnd.wap.wml|application/vnd.wap.xhtml+xml" [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "acs|alav|alca|amoi|audi|aste|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-" [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "dang|doco|eric|hipt|inno|ipaq|java|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-" [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|opwv" [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "palm|pana|pant|pdxg|phil|play|pluc|port|prox|qtek|qwap|sage|sams|sany" [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo" [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|w3cs|wap-|wapa|wapi" [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "wapp|wapr|webc|winw|winw|xda|xda-" [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "up.browser|up.link|windowssce|iemobile|mini|mmp" [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} "symbian|midp|wap|blackberry|j2me|smartphone|series|phone|pocket|mobile|pda|psp|PPC|Android" [NC]
    RewriteCond %{HTTP_USER_AGENT} !macintosh [NC]
    RewriteCond %{HTTP_USER_AGENT} !america [NC]
    RewriteCond %{HTTP_USER_AGENT} !avant [NC]
    RewriteCond %{HTTP_USER_AGENT} !download [NC]
    RewriteCond %{HTTP_USER_AGENT} !windows-media-player [NC]
    
    Для php все значения объединить в массив и сверять UA, ACCEPT.