2011-12-28 13 views
6

tengo que comprobar en mi secuencia de comandos de agente de usuario para dispositivos móviles.agente de usuario de expresiones regulares móvil

tengo

if(preg_match('/lg|iphone|blackberry|opera/i', $_SERVER['HTTP_USER_AGENT'])) { ... } 

me enteré de la lg uno tiene que ser la primera parte de la cadena

por ejemplo:

lg-9000 ... 
lg1000 ... 
lg 2000 ... 
lge4300 ... 

Básicamente quiero saber si es posible encuentre si la cadena (de mi expresión regular) se puede encontrar en el agente de usuario comenzando desde el principio, no en algún lugar de la cadena.

me gustaría no cambiar mi expresión regular

gracias

Respuesta

11

Usted puede utilizar el carácter meta ^ para denotar inicio de la cadena. Puede leer más al respecto here. El siguiente patrón sólo coincidirá lg si está en el inicio de la cadena:

^lg|iphone|blackberry|opera/ 

se puede ver un ejemplo sencillo en acción aquí: http://regexr.com?2vjec

+0

gracias, funciona perfectamente – aki

-2

estoy usando esta biblioteca para detectar OS y el navegador Otros detalles http://chrisschuld.com/projects/browser-php-detecting-a-users-browser-from-php/

+8

no funciona, tengo 'Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7,0) LG, LG-E900 ' y no dice que es un teléfono móvil Y digo que mi sistema operativo es ** un saber**. además. dice ** iPhone 4 ** y mi agente de usuario es 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 como Mac OS X; en-us)' – aki

Cuestiones relacionadas