j'ai une expression régulière simple pour vérifier un nom d'utilisateur:Matching UTF Caractères avec preg_match en PHP: (* UTF8) Fonctionne sous Windows mais pas Linux
preg_match('/(*UTF8)^[[:alnum:]]([[:alnum:]]|[ _.-])+$/i', $username);
Dans les tests locaux (Windows 7 en utilisant WAMP), cette permettra les noms d'utilisateur en utilisant des caractères UTF (tels que é ou ñ). Cependant, quand je me déplace pour tester cela sur le serveur où le site sera effectivement hébergé, je reçois l'avertissement suivant:
Attention: preg_match() [function.preg match]: Compilation a échoué: (* VERB) non reconnu à l'offset 5 dans /home/sites/vgmusic.com/test/Core/Impl/FormElementValidator.php en ligne 12
J'ai aussi essayé sur une installation locale Ubuntu et obtenir la même erreur. En fait, j'ai seulement vu ce travail sur mon environnement de développement local. Y at-il un moyen d'autoriser les caractères spéciaux qui fonctionneront pour tous les systèmes d'exploitation?
Que pensez-vous que '(* UTF8)' fait? – Gumbo
Eh bien, avant de l'ajouter, ce qui précède retournerait faux quand un caractère tel que é a été entré. Après l'avoir ajouté, ces caractères ont été acceptés et le résultat ci-dessus est vrai. Je m'attendais à ce qu'il permette ces personnages. – Scott
C'est presque certainement vers les versions de PHP. Quelles versions de PHP exécutez-vous? Est-ce que les pages phpinfo() contiennent des informations sur les versions de PCRE? –