2010-05-13 5 views
1

Je travaille sur un fichier multilingue. Mes urls ressemblent à ceci:Vérification de la langue dans l'URL avec regex

http://www.example.com/en/about/info 
http://www.example.com/nl/about/info 

Maintenant, j'utiliser un petit script regex qui redirigent l'utilisateur quand ils utilisent un lien sans langue. Le script ressemble à ceci:

preg_match('~^/[a-z]{2}/~', $_SERVER['REQUEST_URI']) 

Cela découvre l'existence d'une langue définie en | nl | de etc. Cela fonctionne très bien sur tous les liens à l'exception de ceux-ci:

http://www.example.com/en 
http://www.example.com/nl 

Il n'y a pas de fuite slash afin que l'expression rationnelle ne puisse pas trouver les valeurs données.

Quelqu'un sait-il une solution pour cela?

Répondre

3
preg_match('~^/[a-z]{2}(?:/|$)~', $_SERVER['REQUEST_URI'] 
1
preg_match('~^/[a-z]{2}(?:/)?~', $_SERVER['REQUEST_URI']) 
+0

cela correspond 2 caractères après chaque barre oblique. – serg

+0

Je ne sais pas si c'est important, mais cela correspondra aussi 'http: // www.mydomain.com/enfoo'. –

+0

Non ce match ne fonctionnera pas pour ma situation –

Questions connexes