Nitruk
Messages postés128Date d'inscriptionlundi 8 août 2005StatutMembreDernière intervention20 juillet 2009
-
16 oct. 2007 à 22:54
Nitruk
Messages postés128Date d'inscriptionlundi 8 août 2005StatutMembreDernière intervention20 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 :
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
Messages postés128Date d'inscriptionlundi 8 août 2005StatutMembreDernière intervention20 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.