tengo una sencilla expresión regular para comprobar un nombre de usuario:caracteres que coincida con UTF con preg_match en PHP: (* UTF8) Funciona en Windows, pero no Linux
preg_match('/(*UTF8)^[[:alnum:]]([[:alnum:]]|[ _.-])+$/i', $username);
En pruebas locales (Windows 7 usando WAMP), este permitirá nombres de usuario usando caracteres UTF (como é o ñ). Sin embargo, cuando me traslado a prueba esta en el servidor donde realmente se encuentra alojada la web, me sale el siguiente aviso:
Advertencia: preg_match() [function.preg-match]: Compilación falló: (* VERBO) no se reconoce en el desplazamiento 5 en /home/sites/vgmusic.com/test/Core/Impl/FormElementValidator.php en la línea 12
también he intentado esto en una instalación local de Ubuntu y obtener el mismo error. De hecho, solo he visto este trabajo en mi entorno de desarrollo local. ¿Hay alguna manera de permitir caracteres especiales que funcionarán para todos los sistemas operativos?
¿Qué esperas que '(* UTF8)' haga? – Gumbo
Bueno, antes de agregarlo, lo anterior devolvería falso cuando se ingresara un carácter como é. Después de agregarlo, esos caracteres fueron aceptados y lo anterior se devolvió verdadero. Esperaba que permitiera dichos personajes. – Scott
Esto es casi seguro hasta las versiones de PHP. ¿Qué versiones de PHP estás ejecutando? ¿Las páginas de phpinfo() contienen información sobre las versiones de PCRE? –