accents inclus ou non dans les expressions rationelles [a-z] [PHP] - PHP - Programmation
Marsh Posté le 15-06-2004 à 01:49:57
je te déconseille fortement d'avoir des accents dans tes URL. Remplace les par les lettres équivalentes non accentuées.
Sinon, tu risque d'avoir un comportement diférent pour chaque navigateur. De plus avant de les transmettre, les accents sont substitués par les codes RFC1738 ou la valeurs hexa ascii équivalents.
exemple : {espace} => %20
é => %E9
...
Enfin
boulangère.html reste parfaitement lisible en boulangere.html
ce sont les codes donnés par rawurlencode() et urlencode()
Marsh Posté le 15-06-2004 à 01:54:20
Tu n'as pas compris mon message.
Je change les liens d'un forum existant, je n'y suis pour rien si PHPbb génère des URL avec des accents.
Merci
Marsh Posté le 15-06-2004 à 02:06:24
comme certains navigateurs t'enverront des requêtes avec des code ascii en hexa précédés d'un %, il faudra que tu l'authorise.
Pour le reste je ne sais pas te répondre alors
Sur le forum webrankinfo une partie est dédiée à l'url rewriting. Tu y trouvera peut-être la solution
Marsh Posté le 15-06-2004 à 01:42:04
Bonjour,
Dans une expression rationelle, je demande à un programme PHP de détecter la présence d'un lien (URL) contenant des caractères ou des chiffres, afin d'effecturer une subsititution avec preg_replace.
Il s'agit d'activer l'URL rewriting d'un forum PHPbb, les liens .php sont transformés en .html.
exemple :
dans mon expression rationelle, je mets :
Or, si les paramètres contiennent des caractères accentués ou spéciaux comme une cédille, ils ne sont pas détectés. C'est embêtant quand l'URL contient des accents, et c'est le cas avec le paramètre highlight= (pour avoir des mots en surbillance).
Ainsi, il semble que les caractères é,è,ç etc..ne sont pas compris dans la plage a-zA-Z.
J'ai essayé d'ajouter manuellement les caractères spéciaux mais ça ne change rien... exemple [a-zA-Z0-9éèùïç] -> aucun changement.
Merci de votre aide.
Message édité par Ethan_carter le 15-06-2004 à 01:43:04