Ayuda con conversion a preg_match

Iniciado por Alex_bro, 28 Octubre 2011, 23:05 PM

0 Miembros y 1 Visitante están viendo este tema.

Alex_bro

Buenas,
Siempre he tenido problemas para entender todo el tema de expresiones regulares y demás en PHP...
el caso es que en una de mis webs, uso el siguiente codigo para detectar navegadores moviles:
Código (php) [Seleccionar]
$is_movil = eregi('/ipod|iphone|android|opera mini|blackberry|palm os|windows ce/',$_SERVER['HTTP_USER_AGENT']);
Pero la funcion eregi ya no es válida en la versión actual de PHP, y en teoria con reemplazarla por preg_match deberia valer, pero el script no funciona cuando uso preg_match...

Que es lo que deberia cambiar mas?

Gracias.

Alex_bro

Perdon, me acabo de dar cuenta de que esto va en el foro de PHP... es que no estoy acostumbrado a publicar alli nada jeje.
Algun moderador puede mover el tema?

Gracias.

Shell Root

#2
Podría ser algo como esto,
Código (php) [Seleccionar]
 $search = $_SERVER['HTTP_USER_AGENT'];
 $expReg = "/chrome|firefox|windows|ipod|iphone|android|opera mini|blackberry|palm os|windows ce/i";
 $result = "";
 
 preg_match( $expReg, $search, $result, PREG_OFFSET_CAPTURE );
 
 print $search;
 print "<br/>";
 print $result[0][0];



Código (bash) [Seleccionar]
# Chrome
Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.106 Safari/535.2
Chrome

# Firefox
Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
Firefox

# IE
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Windows
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

Alex_bro

Genial, muchas gracias amigo  ;-)

Estudié lo que me pusiste y lo que yo hacia mal es no poner la "i" en la expresion regular. Ojala algun dia me entren en la cabeza estas cosas de las expresiones regulares jeje.

Gracias de nuevo :)