validar obtener nombre navegador internet identificar detectar chrome php mobile user-agent browser-detection

php - internet - obtener el nombre del navegador javascript



¿Detección de navegador móvil? (7)

Estoy usando este:

$isMobile = (bool)preg_match(''#/b(ip(hone|od)|android/b.+/bmobile|opera m(ob|in)i|windows (phone|ce)|blackberry''. ''|s(ymbian|eries60|amsung)|p(alm|rofile/midp|laystation portable)|nokia|fennec|htc[/-_]''. ''|up/.browser|[1-4][0-9]{2}x[1-4][0-9]{2})/b#i'', $_SERVER[''HTTP_USER_AGENT''] );

Es corto y detecta la mayoría de los usuarios móviles (o más bien los teléfonos inteligentes). iPad y Android-Tablets no se clasificarán como ''móviles'' ya que tienen tamaños de pantalla más grandes.

Si también desea capturar tabletas, puede usar esto:

$isMobile = (bool)preg_match(''#/b(ip(hone|od|ad)|android|opera m(ob|in)i|windows (phone|ce)|blackberry|tablet''. ''|s(ymbian|eries60|amsung)|p(laybook|alm|rofile/midp|laystation portable)|nokia|fennec|htc[/-_]''. ''|mobile|up/.browser|[1-4][0-9]{2}x[1-4][0-9]{2})/b#i'', $_SERVER[''HTTP_USER_AGENT''] );

Estamos buscando una manera de determinar si un usuario está usando un navegador móvil. Necesitamos hacer eso en PHP, analizando la cadena de agente de usuario. Sé que este método tiene muchas advertencias, pero realmente necesitamos hacerlo de esa manera.

¿Tienes alguna sugerencia? ¿Un buen código actualizado (aunque no sea perfecto)?

Sé sobre WURFL, y creo que es genial, pero ya no es de uso gratuito para proyectos de código no abierto. Al buscar en Google un poco, también encontré este código: http://mobiforge.com/developing/story/lightweight-device-detection-php (y algunas variaciones), pero no estoy seguro de ello. Parece que está escrito muy mal (por ejemplo, cuando usan $ mobile_browser = ''0'' con las comillas alrededor de un entero ...).

¿Puedes recomendar algo?

Gracias,

Alessandro


Estoy usando la clase Mobile_Detect . Se actualiza casi semanalmente. El código busca signos de dispositivo ''móvil'' tanto en los encabezados HTTP como en la cadena User-Agent.

Demo ← ejecuta esto desde tu dispositivo móvil

Es probable que solo uses:

include("Mobile_Detect.php"); $detect = new Mobile_Detect(); if ($detect->isMobile()) { // any mobile platform }

La clase también intenta detectar dispositivos de tableta a través de:

if($detect->isTablet()){ // any tablet }

No hay una solución mágica para detectar dispositivos móviles, pero este es un buen comienzo antes de decidir utilizar API externas como WURLF, DeviceAtlas u otros.


Floern Gracias por el código !!!

Agregué la tableta Hp TouchPad con un:

hpwos

Aquí está:

$ isMobile = (bool) preg_match (''# / b (ip (hone | od | ad) | android | opera m (ob | in) i | windows (phone | ce) | blackberry || hpwos | tablet''. ''| s (ymbian | eries60 | amsung) | p (laybook | alm | rofile / midp | laystation portable) | nokia | fennec | htc [-_] ''. mobile | up.browser | [1-4] [0- 9] {2} x [1-4] [0-9] {2}) / b # i '', $ _SERVER ['' HTTP_USER_AGENT '']);


Lo siento, he leído mal tu pregunta antes

Hay una manera muy fácil de detectar si alguien está usando un móvil o una PC

Esto es lo que hago

En los resultados de la pantalla de mi formulario, agrego lo siguiente al final MUY al final de la captura de datos del formulario;

$msg .= "Referers: ".$_POST[''Referers'']. "/r/n";

Entonces justo debajo del campo agrego esto

[[input type="hidden" id="Referers" name="Referers" value="[[?php echo "IP: " . $_SERVER[''REMOTE_ADDR'']; echo "/nURL: " . $_SERVER[''HTTP_REFERER'']; echo "/nWebsite: " . $URL; echo "/n/nBrowser Type:" . $_SERVER[''HTTP_USER_AGENT'']; ?]]"]]

Tenga en cuenta que he cambiado el

Los resultados se imprimen así en mis correos electrónicos:

Referencias: IP: xxx.xxx.xxx.xxx // Estoy ocultando esto

URL: http://www.emailmarketingaustralia.com.au/Contact/index.php Sitio web: http://www.emailmarketingaustralia.com.au

Tipo de navegador: Mozilla / 5.0 (Macintosh; U; Intel Mac OS X 10_6_3; HTC_Sensation_Z710e ; es-in) AppleWebKit / 533.16 (KHTML, como Gecko) Versión / 5.0 Safari / 533.16

Lo que es interesante es que estoy en Australia, pero GEO-REGION me enumera como en-in (India)

// GEO CITY

También puede obtener datos de MAX MIND (www.maxmind.com) si desea que la IP muestre la ciudad y el país

Esto es simple y limpio y te da la necesidad que necesitas.


Otras dos ideas son:

  1. Algunos de los principales operadores insertan su propio encabezado: puede usar esto si le importa, siempre que los usuarios estén a través de la red del operador.
  2. Puedes usar JavaScript para detectar el tamaño de la pantalla. Muchas compañías están tratando de implementar el Diseño Responsivo haciendo pequeñas páginas web: por lo tanto, este es quizás un enfoque mejor y más simple. Además, HTML5 tiene consultas de medios para cambiar CSS en función del tamaño de la pantalla.


Si no necesita la detección de capacidades avanzadas, puede utilizar este resource . Creo que las nuevas apis de WURFL son AGPL, por lo que son gratuitas. De todos modos podrías usar la versión antigua, ¿no?