2010-09-28 30 views
13

Necesito una forma de detectar navegadores móviles en el servidor. Me gustaría una forma que me obligue a hacer poco para configurar y poco para mantener, y aún así proporcionarme una detección precisa de (al menos) Android, navegadores de Mobile Safari y Blackberry, junto con alternativas como Opera.¿Detección del navegador móvil PHP?

Me gustaría tener al menos la mayoría del mercado móvil cubierto, y realmente preferiría prácticamente todo el mercado si no toma mucho.

+2

_'little to maintain'_ va a ser difícil, ya que la única manera semi-confiable que tenemos son las cadenas de agente de usuario, que cambian todo el tiempo en las versiones nuevas (er). Me pregunto ** sin embargo ¿te sorprende esa 'colisión' que anticipas? – Wrikken

+0

Pensé que sería. Pero oh, ja, ese es el resultado de intentar publicar desde un sueño htc. Sólo debe ser "detección" –

+0

Muy similar a http://stackoverflow.com/questions/6636306/mobile-browser-detection, Su respuesta aceptada podría funcionar para usted, Se basa en las sugerencias de @Rick a continuación, aunque puede requiere un poco de mantenimiento – Sydwell

Respuesta

16

WURLF es la mejor manera para la detección del navegador móvil y un PHP API está disponible.

+0

+1, permítanme agregar que se actualiza con frecuencia con nuevos dispositivos y capacidades del dispositivo – Fanis

+0

Esto se ve bastante bien, creo que lo probaré. ¡Gracias! –

+1

Solo quería señalar aquí (para las personas que vienen en google después de mí) que la biblioteca PEAR Log es necesaria para WURLF – electblake

3

Es solo una cuestión de leer los encabezados (How do I read any request header in PHP) y analizar/interpretar esto para leer el "user-agent", es posible que pueda encontrar un script PHP existente o simplemente simplemente regex que ayudará a averiguar qué usuarios-agentes son móviles y cuáles son computadoras/computadoras portátiles comunes.

Hay muchos encabezados diferentes, ya que indican el sistema operativo, por lo que muchos sistemas operativos móviles diferentes que hay allí serían encabezados de agente de usuario, por lo que el script debe tener una lista de todos los válidos.

+0

Hola, gracias por la respuesta, pero realmente estaba buscando más una biblioteca para evitar este tipo de trabajo tedioso ... –

+2

Puedes simplemente verificar la variable '$ _SERVER ['HTTP_USER_AGENT']' – webbiedave

7

(edit: por ahora el Explorador de proyectos de Capacidad está cerrado, es decir atm esta respuesta no es una opción)

Todo lo que necesita es get_browser() y un reciente browscap.ini que se asigna la cadena de agente de usuario a un navegador/versión y sus capacidades.

, usted puede obtener una versión generalmente muy al día browscap.ini de http://browsers.garykeith.com/downloads.asp

2

Zend Framework ha presentado Zend_Http_UserAgent últimamente.

Puede determinar el dispositivo móvil y sus capacidades mediante la detección de UserAgent a través de Wurfl, TeraWurfl y DeviceAtlas API.

3

encontrado esta biblioteca hace un rato:

http://code.google.com/p/mobileesp/

Has PHP, Java, JavaScript, y C# versiones. Lo veo como una herramienta de detección de teléfonos inteligentes/tabletas "liviana" sin dependencias y se actualiza periódicamente. Tengo sentimientos encontrados al respecto, ya que algunos aspectos de la calidad del código son un poco inestables.

Si necesita algo aún más liviano, el complemento WP Super Cache para WordPress contiene algunas cadenas largas de expresiones regulares que probablemente podría deslizar.

El rastreo del navegador basado en cadenas de agente de usuario siempre será escamoso. Miré WURFL y hay varios MB comprimidos. Usar eso es excesivo. Un mejor enfoque es detectar los mejores dispositivos en uso en el sitio web, diseñar para esos dispositivos y luego llamarlo por día.

15

Me pareció que éste sea muy fácil de usar php-mobile-detect

+0

Se actualiza periódicamente, es fácil de usar y está patrocinado por BrowserStack, también: parece una biblioteca decente. – tonyhb

+0

@tonyhb ... cuando dices que se actualiza regularmente, no entiendo cómo se puede actualizar desde que lo descargué (el archivo Mobile_Detect.php) a mi computadora. ¿Quiere decir que tendría que volver al sitio de descarga de forma rutinaria para buscar versiones más nuevas? – dsdsdsdsd

+0

Sí, tendrá que volver a descargar el archivo periódicamente para asegurarse de que esté actualizado. – tonyhb

0

Una vez solía almacenar temporalmente las direcciones IP de los visitantes y los valores de la sesión csrf (destinados a contar los visitantes actuales).

Y noté que tenía una ventaja adicional de poder ver si el visitante usaba un móvil o una PC: la csrf de un móvil cambia con cada nueva carga de página, una PC no; y las direcciones IP permanecen en ambos casos.

Claro, solo se detecta un móvil si un visitante hace clic dos veces y no he comprobado qué tan confiable es (ya que realmente no lo necesito), pero solo está en el servidor/php.

Cuestiones relacionadas