Page 1 sur 1

preg_replace

Posté : 25 juil. 2019, 11:56
par CuriousStudent
Bonjour,
j'essaye de de réaliser un petit script qui me permet de colorier une balise html cependant je coince...

$texte = preg_replace('#</[a-z]+>#isU','<p><font color="blue">$0</font></p>', $texte);

ce code ne donne rien, et je ne comprend vraiment pas pourquoi .. Merci d'avance pour votre aide précieuse

Re: preg_replace

Posté : 25 juil. 2019, 12:02
par Saian
Bonjour, ce code est quand même sensé faire un remplacement sur les balises fermantes genre </a>, </p>, </i>, </span>, etc
Encore faut-il que le html dans $texte contienne du html brut et non du html transformé comme avec les fonctions htmlspecialchars ou htmlentities.

Re: preg_replace

Posté : 25 juil. 2019, 12:16
par CuriousStudent
Re, merci pour ta réponse !

Justement ce texte est bien transformé avec htmlspécialchar
sinon il apparait même pas en fait ..

Re: preg_replace

Posté : 25 juil. 2019, 12:29
par Saian
Et oui tout à fait.
Avec le html modifié il faut que tu remplaces dans tes regex < par &lt; et > par &gt;
Les " sont également remplacés par &quote;

Après tu pourrais aussi t'amuser lors des preg_replace, en travaillant sur un html non modifié, à baliser avec des balises personnelles genre {blue}$0{/blue} et remplacer ces balises personnelles par des vraies balises html une fois le traitement terminé (sans oublier au préalable de passer un htmlentities une fois toutes tes balises personnelles posées).

Re: preg_replace

Posté : 25 juil. 2019, 13:02
par CuriousStudent
Franchement un grand merci.
Vous êtes vraiment géniaux sur ce forum !