Titre: Détection de balise regex
Posté par: lulu44 le le 17-06-2012 a 18:33:54
Bonjour, Question toute simple mais sans réponse pour moi. je cherche à colorer le code html qu'un utilisateur aurait rentré.
Pour cela je récupère la valeur du champ et la fait passer par htmlspecialchars stripslashes et nl2br. ensuite à l'aide de preg_replace je souhaite colorer les balises(<a></a>) en orange. pour l'instant j'ai: $chaine = preg_replace("#(<[a-z0-9]>)#", "<span class='orange'>$1</span>", $chaine);
Ceci marche avec du bbcode si je change <> par [] dans le texte et le regex mais avec < et > cela ne fonctionne plus ! comment faire. |
Titre: Re:Détection de balise regex
Posté par: lulu44 le le 17-06-2012 a 23:33:14
Je ne veux pas m'avancer mais je crois que c'est htmlspecialchers qui change la valeur de < et >, il faut peut etre les annoncer avec un caractère special mais lequel ? sachant que je ne veux pas que les balises soient interprétées :p
|
Titre: Re:Détection de balise regex
Posté par: lulu44 le le 18-06-2012 a 01:52:23
Pour ceux qui cherchent, j'ai trouvé la solution sur le site officiel du php. htmlspecialchars transforme le code html en notation spécifiques tel que < devient "<" je vous passe le lien de toutes les transformations pour vous faire une idée :) : http://php.net/manual/fr/function.htmlspecialchars.php .
du coup mon expression régulière donne: $code = preg_match('#<[a-z0-9]{1,}>#i', '<span class="orange">$1</span>', $code);
Et ça fonctionne !!! :D |
Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.
|