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:
- 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.
- 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.
Puede utilizar la función incorporada de PHP get_browser()
. De acuerdo con el Manual de PHP, la matriz de salida tiene un campo de platform
que puede utilizar para detectar navegadores móviles.
También hay un código de http://mobiforge.com/developing/story/lightweight-device-detection-php por Mobiforge.
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?