[PHP] accents inclus ou non dans les expressions rationelles [a-z]

accents inclus ou non dans les expressions rationelles [a-z] [PHP] - PHP - Programmation

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 :

Code :
  1. domaine.com/test.php?param1=param1&param2=param2


 
dans mon expression rationelle, je mets :
 

Code :
  1. domaine\.com\/test\.php\?param1=([a-zA-Z0-9]*)&param2=([a-zA-Z0-9]*)


 
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
Reply

Marsh Posté le 15-06-2004 à 01:42:04   

Reply

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()


Message édité par T509 le 15-06-2004 à 01:52:35

---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

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

Reply

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


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed