Page 1 sur 1

[PHP] problème avec preg_replace

Publié : 02 févr. 2005, 00:39
par Narno
Salut à tous !

Voilà, j'ai créé une fonction PHP qui devrait empècher l'interprétation du code HTML lorsque celui-ci est placé entre les balises <code>XXX</code>

Pour celà j'ai utilisé les expressions régulières et plus précisement, preg_replace :

Code : Tout sélectionner

/* Fonction de nettoyage du texte */
function format_content($text) {
	$code = preg_replace("/(.*)(<code>)(.*)(<\/code>)(.*)/is","$3",$text);
	$code = htmlentities($code);
	$text = preg_replace("/(.*)(<code>)(.*)(<\/code>)(.*)/is","$1$2".$code."$4$5",$text);
	return $text;
}
Malheuresement, si j'utilise plusieurs fois les balises <code>XXX</code> dans le même texte, seule la dernière est prise en compte par mon REGEX.

J'ai raté un truc ? Merci d'avance.

Publié : 02 févr. 2005, 01:06
par Narno
Bon, j'ai essayé de nettoyer et d'optimiser le code, mais rien n'y fait...

Code : Tout sélectionner

/* Fonction de nettoyage du texte */
function format_content($text) {
	return preg_replace_callback("/(.*)(<code>)(.*)(<\/code>)(.*)/is",create_function('$masque','return $masque[1].$masque[2].htmlentities($masque[3]).$masque[4].$masque[5];'),$text);
}
Seul la dernière paire de balise est traitée, je ne vois pas trop le problème... p-e après une bonne nuit de sommeil.

Merci.