From f50840eb31c3bc24fa15b967a1a098fe0db31e79 Mon Sep 17 00:00:00 2001 From: Antoine Pitrou <pitrou@free.fr> Date: Thu, 26 Jun 2003 14:19:36 +0000 Subject: [PATCH] php 4.3.2 et var_recherche --- ecrire/inc_surligne.php3 | 19 ++++++++++++------- inc-public-global.php3 | 5 +++-- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/ecrire/inc_surligne.php3 b/ecrire/inc_surligne.php3 index e720c555fa..806bf8003b 100644 --- a/ecrire/inc_surligne.php3 +++ b/ecrire/inc_surligne.php3 @@ -5,6 +5,13 @@ if (defined("_ECRIRE_INC_SURLIGNE")) return; define("_ECRIRE_INC_SURLIGNE", "1"); + +// Fonction bidon evitant que PHP optimise les ob_start() vides +function callback_surligne($texte) { + return $texte; +} + + // utilise avec ob_start() et ob_get_contents() pour // mettre en rouge les mots passes dans $var_recherche function surligner_mots($page, $mots) { @@ -53,7 +60,7 @@ function surligner_mots($page, $mots) { $debut = substr($page, 0, strpos($page, $exp[0])+strlen($exp[0])); $page = substr($page, strlen($debut)); } else - $debut = ''; + $debut = ''; // Remplacer une occurence de mot maxi par espace inter-tag (max 1 par paragraphe, sauf italiques etc.) // se limiter a 4 remplacements pour ne pas bouffer le CPU @@ -68,11 +75,10 @@ function surligner_mots($page, $mots) { // debut et fin, appeles depuis les squelettes function debut_surligne($mots, $mode_surligne) { - switch ($mode_surligne) { case 'auto' : // on arrive du debut de la page, on ne touche pas au buffer ob_end_flush(); - ob_start(""); + ob_start('callback_surligne'); $mode_surligne = 'actif'; break; @@ -80,12 +86,12 @@ function debut_surligne($mots, $mode_surligne) { $la_page = surligner_mots(ob_get_contents(), $mots); ob_end_clean(); echo $la_page; - ob_start(""); + ob_start('callback_surligne'); $mode_surligne = 'actif'; break; case 'inactif' : // il n'y a pas de buffer - ob_start(""); + ob_start('callback_surligne'); $mode_surligne = 'actif'; break; @@ -97,13 +103,12 @@ function debut_surligne($mots, $mode_surligne) { } function fin_surligne($mots, $mode_surligne) { - switch ($mode_surligne) { case 'auto' : // on arrive du debut de la page, on s'occupe du buffer $la_page = surligner_mots(ob_get_contents(), $mots); ob_end_clean(); echo $la_page; - ob_start(""); + ob_start('callback_surligne'); $mode_surligne = 'inactif'; break; diff --git a/inc-public-global.php3 b/inc-public-global.php3 index 1c24957251..aae4628327 100644 --- a/inc-public-global.php3 +++ b/inc-public-global.php3 @@ -135,8 +135,9 @@ if (!$use_cache) { if ($var_recherche AND $flag_ob AND $flag_pcre AND !$flag_preserver AND !$mode_surligne) { include_ecrire("inc_surligne.php3"); $mode_surligne = 'auto'; - ob_start(""); -} else { + ob_start('callback_surligne'); +} +else { unset ($var_recherche); unset ($mode_surligne); } -- GitLab