2011-06-29 16 views
34

Duplicar posible:
Simplest way to detect a mobile deviceDetectar navegador móvil

Tengo un sitio y quiero para detectar qué navegador se utiliza y redirigirlos. Tengo un índice php y el código debe estar en php. He encontrado muchos sitios pero no funcionan o no detectan muchos navegadores móviles. ¿Conoces algún buen código o tutoriales que pueda detectar muchos navegadores móviles?

+0

no estoy seguro de si esto es demasiado para lo que necesita, pero es posible que desee echar un vistazo: http://wurfl.sourceforge.net/nphp/ – dimi

+0

ver: http://mobiledetect.net/ parece el más simple manera ... – theINtoy

+0

Masa en contraste, esta es más fácil de incluir y realmente funciona !! Le sugiero que vote por @iamandrus como respuesta – user613326

Respuesta

55

tener mi código de agente de usuario:

<?php 

/* USER-AGENTS 
================================================== */ 
function check_user_agent ($type = NULL) { 
     $user_agent = strtolower ($_SERVER['HTTP_USER_AGENT']); 
     if ($type == 'bot') { 
       // matches popular bots 
       if (preg_match ("/googlebot|adsbot|yahooseeker|yahoobot|msnbot|watchmouse|pingdom\.com|feedfetcher-google/", $user_agent)) { 
         return true; 
         // watchmouse|pingdom\.com are "uptime services" 
       } 
     } else if ($type == 'browser') { 
       // matches core browser types 
       if (preg_match ("/mozilla\/|opera\//", $user_agent)) { 
         return true; 
       } 
     } else if ($type == 'mobile') { 
       // matches popular mobile devices that have small screens and/or touch inputs 
       // mobile devices have regional trends; some of these will have varying popularity in Europe, Asia, and America 
       // detailed demographics are unknown, and South America, the Pacific Islands, and Africa trends might not be represented, here 
       if (preg_match ("/phone|iphone|itouch|ipod|symbian|android|htc_|htc-|palmos|blackberry|opera mini|iemobile|windows ce|nokia|fennec|hiptop|kindle|mot |mot-|webos\/|samsung|sonyericsson|^sie-|nintendo/", $user_agent)) { 
         // these are the most common 
         return true; 
       } else if (preg_match ("/mobile|pda;|avantgo|eudoraweb|minimo|netfront|brew|teleca|lg;|lge |wap;| wap /", $user_agent)) { 
         // these are less common, and might not be worth checking 
         return true; 
       } 
     } 
     return false; 
} 

?> 

Modo de empleo:

<?php 
$ismobile = check_user_agent('mobile'); 
if($ismobile) { 
return 'yes'; 
} else { 
return 'no'; 
} 
?> 
+0

Oye, muchas gracias. Esto realmente ayuda para mí. – Gromdroid

+0

¡Ningún problema en absoluto! – iamandrus

+0

buena implementación. ¡Prestigio! – vlex

4

En el trabajo, utilizamos WURFL - hay millones de diferentes navegadores por ahí, y ya está mejor de para reutilizar el trabajo que otros con experiencia hicieron en ese sentido en lugar de implementar su propia solución.

+1

Puede ser útil mostrar o vincular un ejemplo de uso de WURFL en PHP para lograr lo que quiere @Gromdroid. – cdmckay

28

Escribí this script to detect a mobile browser en PHP.

El código detecta a un usuario basado en la cadena de agente de usuario por preg_match() ing. Tiene el 100% de precisión en todos los dispositivos móviles actuales y actualmente estoy actualizando para admitir más dispositivos móviles a medida que salen. El código se llama isMobile y es como sigue:

function isMobile() { 
    return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]); 
} 

Usted puede utilizar de esta manera:

// Use the function 
if(isMobile()) 
    // Do something for only mobile users 
else 
    // Do something for only desktop users 

Para redirigir un usuario a su sitio móvil, Me gustaría hacer esto:

// Create the function, so you can use it 
function isMobile() { 
    return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]); 
} 
// If the user is on a mobile device, redirect them 
if(isMobile()) 
    header("Location: http://m.yoursite.com/"); 

¡Avíseme si tiene alguna pregunta y buena suerte!

+0

@AndrewBarber: Parece que cumple con todos los requisitos descritos [aquí] (http://meta.stackexchange.com/questions/94022) –

+0

@robert ok. Lo que pasa es que las respuestas son casi duplicados, pero entiendo :) –

+0

no entiendo cuál es el problema. preguntas múltiples preguntando cómo redirigir en PHP, así que respondí. ¿Ustedes chicos sugiero que haga en su lugar? –

Cuestiones relacionadas