From be89d2a3a12089d04758ff0a0c1e02171a955bd5 Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Fri, 21 Jul 2006 11:16:32 +0000 Subject: [PATCH] proteger les caracteres {}- a l'interieur des tags (attention c'est probablement couteux en temps) --- ecrire/inc/texte.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/ecrire/inc/texte.php b/ecrire/inc/texte.php index 99484243fd..a2d8a1e5a3 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); -- GitLab