"&" dans une expression régulière

Résolu
Nitruk Messages postés 128 Date d'inscription lundi 8 août 2005 Statut Membre Dernière intervention 20 juillet 2009 - 16 oct. 2007 à 22:54
Nitruk Messages postés 128 Date d'inscription lundi 8 août 2005 Statut Membre Dernière intervention 20 juillet 2009 - 17 oct. 2007 à 16:38
Bonjour, il semblerait que je rencontre un problème en essayant de trouver des url, ou plus précisment des balises "url" de BBcode.
Pour adapter celles-ci en lien j'utilise la fonction ereg_replace, ainsi :

ereg_replace('\[url=([[:alnum:]\./:_&?=-]*)\]','[\\1 ',$texte);

Et tout celà fonctionne très bien, sauf si l'url comprise dans la balise inclut un ou plusieurs caractères "&". Dans ce cas la fonction ne reconnait pas l'expression et l'ignore. J'ai essayé de "slasher" le & de mon expression et de le passeren début de classe, sans résultat. Pourtant il ne s'agit pas a priori d'un caractère particulier...

Pour commencer j'employais ereg_replace('\[url=(.*)\]',']',$texte); et ça fonctionnait très bien, sauf que la fonction ne situait la fin de l'expression qu'au dernier crochet de fermeture de $texte, ce qui ne m'intéressait pas outre mesure. ^^

Bref, si quelqu'un a une solution ou une explication à me proposer, il sera le bienvenu :)

Nitruk

1 réponse

Nitruk Messages postés 128 Date d'inscription lundi 8 août 2005 Statut Membre Dernière intervention 20 juillet 2009
17 oct. 2007 à 16:38
J'ai trouvé ^^.

En réalité le problème vient de ma gestion des informations. En effet avant de pratiquer une série de expreg_replace() pour remplacer les balises BBcode par leurs équivalents HTML, je remplace les symboles comme "é", "è", les sauts de lignes et les espaces multiples par les codes HTML correspondants. On ne rencontre pas vraiment d'espaces multples ou sauts de lignes ni d'accents dans les url, mais le caractère & est lui-même remplacé par & -> c'est donc le point-virgule qui gênait en réalité, et il a suffit de le prendre en compte dans mon expression régulière pour éliminer le problème.

Merci à ceux qui ont lu mon message !

Nitruk
3
Rejoignez-nous