From f68e22c91a1ccf09a03757de0a9d2f0384418c17 Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Tue, 29 Mar 2005 23:12:21 +0000 Subject: [PATCH] =?UTF-8?q?et=20voila=20comment=20perdre=20plusieurs=20diz?= =?UTF-8?q?aines=20de=20secondes=20dans=20la=20fonction=20propre(),=20et?= =?UTF-8?q?=20la=20faire=20=C3=A9chouer=20sur=20ouvaton...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecrire/inc_texte.php3 | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/ecrire/inc_texte.php3 b/ecrire/inc_texte.php3 index 20a0574213..8157b2817f 100644 --- a/ecrire/inc_texte.php3 +++ b/ecrire/inc_texte.php3 @@ -219,27 +219,24 @@ function echappe_html($letexte, $source='SOURCEPROPRE', $no_transform=false) { // Traitement final des echappements function echappe_retour($letexte, $les_echap, $source='') { - $cherche = "@@SPIP_$source"; - $n = strlen($cherche); - $debut = ''; - while(($pos = strpos($letexte, $cherche)) !== false) { - ereg("^([0-9]+)@@(.*)$",substr($letexte,$pos+$n),$regs); - $rempl = $les_echap[$regs[1]]; -# si $rempl est un tableau, c'est le résultat (cf echappe_html) de eregi sur : + $expr = ",@@SPIP_$source([0-9]+)@@,"; + if (preg_match_all($expr, $letexte, $regs, PREG_SET_ORDER)) { + foreach ($regs as $reg) { + $rempl = $les_echap[$reg[1]]; +# si $rempl est un tableau, c'est le resultat (cf echappe_html) de eregi sur : # <(IMG|DOC|EMB)([0-9]+)(\|([^\>]*))? - if (is_array($rempl)) - { - include_ecrire("inc_documents.php3"); - $type = strtoupper($rempl[1]); - if ($type == 'EMB') - $rempl = embed_document($rempl[2], $rempl[4]); - else - $rempl = integre_image($rempl[2], $rempl[4], $type); - } - $debut .= substr($letexte,0,$pos) . $rempl; - $letexte = $regs[2]; - } - return $debut . $letexte; + if (is_array($rempl)) { + include_ecrire("inc_documents.php3"); + $type = strtoupper($rempl[1]); + if ($type == 'EMB') + $rempl = embed_document($rempl[2], $rempl[4]); + else + $rempl = integre_image($rempl[2], $rempl[4], $type); + } + $letexte = str_replace($reg[0], $rempl, $letexte); + } + } + return $letexte; } -- GitLab