From 94ecd4adc37374d9c5f3cddaf2c6e6691ec7a15d Mon Sep 17 00:00:00 2001 From: Fil <fil@rezo.net> Date: Sat, 7 Jan 2006 19:09:10 +0000 Subject: [PATCH] inserer_documents() devient un vrai filtre, au prix de quelques pico-secondes de traitements en plus (on passe deux fois preg_match) --- ecrire/inc_documents.php3 | 6 ++++-- ecrire/inc_texte.php3 | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ecrire/inc_documents.php3 b/ecrire/inc_documents.php3 index f67bb578fd..a25af7a302 100644 --- a/ecrire/inc_documents.php3 +++ b/ecrire/inc_documents.php3 @@ -386,14 +386,16 @@ function integre_image($id_document, $align, $type_aff) { // // Traitement des images et documents <IMGxx|right> pour inc_texte // -function inserer_documents($letexte, $matches) { +function inserer_documents($letexte) { # HACK: empecher les boucles infernales lorsqu'un document est mentionne # dans son propre descriptif (on peut citer un document dans un autre, # mais il faut pas trop pousser...) static $pile = 0; if (++$pile > 5) return ''; - foreach ($matches as $match) { + foreach ( + preg_match_all(__preg_img, $letexte, $matches, PREG_SET_ORDER) + as $match) { $type = strtoupper($match[1]); if ($type == 'EMB') $rempl = embed_document($match[2], $match[4]); diff --git a/ecrire/inc_texte.php3 b/ecrire/inc_texte.php3 index 8fc3b1a9fe..cc438f1bdd 100644 --- a/ecrire/inc_texte.php3 +++ b/ecrire/inc_texte.php3 @@ -476,9 +476,9 @@ function typo($letexte, $echapper=true) { // // NOTE : dans propre() ceci s'execute avant les tableaux a cause du "|", // et apres les liens a cause du traitement de [<imgXX|right>->URL] - if (preg_match_all(__preg_img, $letexte, $matches, PREG_SET_ORDER)) { + if (preg_match(__preg_img, $letexte)) { include_ecrire('inc_documents'); - $letexte = inserer_documents($letexte, $matches); + $letexte = inserer_documents($letexte); } // Appeler les fonctions de post-traitement -- GitLab