diff --git a/ecrire/inc/texte.php b/ecrire/inc/texte.php index 99484243fd743aa0d3c88ac6cb24f42924e04b8d..a2d8a1e5a367d5608ae47553fea27767c78842d9 100644 --- a/ecrire/inc/texte.php +++ b/ecrire/inc/texte.php @@ -1141,6 +1141,21 @@ function traiter_raccourcis($letexte) { $puce = definir_puce(); else $puce = ''; + + // Proteger les caracteres actifs a l'interieur des tags html + $protege = "{}-"; + $illegal = "\x1\x2\x3"; + if (preg_match_all(",</?[a-z!][^<>]*[!':;\?~][^<>]*>,ims", + $letexte, $regs, PREG_SET_ORDER)) { + foreach ($regs as $reg) { + $insert = $reg[0]; + // hack: on transforme les caracteres a proteger en les remplacant + // par des caracteres "illegaux". (cf corriger_caracteres()) + $insert = strtr($insert, $protege, $illegal); + $letexte = str_replace($reg[0], $insert, $letexte); + } + } + // autres raccourcis $cherche1 = array( /* 0 */ "/\n(----+|____+)/", @@ -1179,6 +1194,8 @@ function traiter_raccourcis($letexte) { $letexte = preg_replace($cherche1, $remplace1, $letexte); $letexte = preg_replace("@^ <br />@", "", $letexte); + // Retablir les caracteres proteges + $letexte = strtr($letexte, $illegal, $protege); // Fermer les paragraphes $letexte = paragrapher($letexte);