From c3e023332a5a9a415dc5df3de17494b317b17f03 Mon Sep 17 00:00:00 2001 From: Antoine Pitrou <pitrou@free.fr> Date: Sun, 31 Aug 2003 23:57:39 +0000 Subject: [PATCH] optimisations --- ecrire/inc_texte.php3 | 29 ++++++++++++++++------------- ecrire/inc_version.php3 | 1 - inc-public-global.php3 | 14 +++++++++++++- 3 files changed, 29 insertions(+), 15 deletions(-) diff --git a/ecrire/inc_texte.php3 b/ecrire/inc_texte.php3 index 8b51cb0dc4..15b832ba6a 100644 --- a/ecrire/inc_texte.php3 +++ b/ecrire/inc_texte.php3 @@ -126,7 +126,7 @@ function ereg_remplace($cherche_tableau, $remplace_tableau, $texte) { // Ne pas afficher le chapo si article virtuel function nettoyer_chapo($chapo){ if (substr($chapo,0,1) == "="){ - $chapo = ""; + $chapo = ""; } return $chapo; } @@ -319,7 +319,7 @@ function typo_fr($letexte) { ); $letexte = ereg_remplace($cherche2, $remplace2, $letexte); - return ($letexte); + return $letexte; } // rien sauf les ~ @@ -573,11 +573,13 @@ function traiter_raccourcis($letexte, $les_echap = false, $traiter_les_notes = ' // // Notes de bas de page // + $texte_a_voir = $letexte; + $texte_vu = ''; $regexp = "\[\[(([^]]|[^]]\][^]])*)\]\]"; /* signifie : deux crochets ouvrants, puis pas-crochet-fermant ou crochet-fermant entoure de pas-crochets-fermants (c'est-a-dire tout sauf deux crochets fermants), puis deux fermants */ - while (ereg($regexp, $letexte, $regs)){ + while (ereg($regexp, $texte_a_voir, $regs)) { $note_texte = $regs[1]; $num_note = false; @@ -609,8 +611,11 @@ function traiter_raccourcis($letexte, $les_echap = false, $traiter_les_notes = ' } // dans le texte, mettre l'appel de note a la place de la note - $letexte = implode($insert, split($regexp, $letexte, 2)); + $pos = strpos($texte_a_voir, $regs[0]); + $texte_vu .= substr($texte_a_voir, 0, $pos) . $insert; + $texte_a_voir = substr($texte_a_voir, $pos + strlen($regs[0])); } + $letexte = $texte_vu . $texte_a_voir; // // Raccourcis automatiques vers un glossaire @@ -637,13 +642,11 @@ function traiter_raccourcis($letexte, $les_echap = false, $traiter_les_notes = ' $regexp = "\[([^][]*)->(>?)([^]]*)\]"; $texte_a_voir = $letexte; $texte_vu = ''; - while (ereg($regexp, $texte_a_voir, $regs)){ + while (ereg($regexp, $texte_a_voir, $regs)) { list($insert, $lien) = extraire_lien($regs); - $zetexte = split($regexp,$texte_a_voir,2); - - // typo en-dehors des notes - $texte_vu .= typo($zetexte[0]).$insert; - $texte_a_voir = $zetexte[1]; + $pos = strpos($texte_a_voir, $regs[0]); + $texte_vu .= typo(substr($texte_a_voir, 0, $pos)) . $insert; + $texte_a_voir = substr($texte_a_voir, $pos + strlen($regs[0])); } $letexte = $texte_vu.typo($texte_a_voir); // typo de la queue du texte @@ -675,7 +678,7 @@ function traiter_raccourcis($letexte, $les_echap = false, $traiter_les_notes = ' $textBegin = substr($letexte, 0, $tableBeginPos); $textTable = substr($letexte, $tableBeginPos + 2, $tableEndPos - $tableBeginPos); $textEnd = substr($letexte, $tableEndPos + 3); - + $newTextTable = "\n<p><table class=\"spip\">"; $rowId = 0; $lineEnd = strpos($textTable, "|\n"); @@ -782,8 +785,8 @@ function traiter_raccourcis($letexte, $les_echap = false, $traiter_les_notes = ' } // paragrapher - if (ereg('<p class="spip">',$letexte)) - $letexte = '<p class="spip">'.ereg_replace('<p class="spip">', "</p>\n".'<p class="spip">',$letexte).'</p>'; + if (strpos(' '.$letexte, '<p class="spip">')) + $letexte = '<p class="spip">'.str_replace('<p class="spip">', "</p>\n".'<p class="spip">', $letexte).'</p>'; // intertitres & hr compliants $letexte = ereg_replace('(<p class="spip">)?[[:space:]]*@@SPIP_debut_intertitre@@', $debut_intertitre, $letexte); diff --git a/ecrire/inc_version.php3 b/ecrire/inc_version.php3 index 0afc6d81c7..90caa0de49 100644 --- a/ecrire/inc_version.php3 +++ b/ecrire/inc_version.php3 @@ -840,7 +840,6 @@ function verif_butineur() { } - function spip_debug($message) { if ($GLOBALS['debug']) spip_log($message); diff --git a/inc-public-global.php3 b/inc-public-global.php3 index e06c51a56e..38a87f3c73 100644 --- a/inc-public-global.php3 +++ b/inc-public-global.php3 @@ -5,6 +5,15 @@ include_local ("inc-cache.php3"); if ($INSECURE['fond'] || $INSECURE['delais']) exit; +/*function t($s = '') { + global $t0, $t1; + $t1 = explode(" ", microtime()); + $dt = floor(1000 * ($t1[0] + $t1[1] - $t0[0] - $t0[1])) / 1000; + echo "<p>"; + if ($s) echo "<b>$s :</b> "; + echo "$dt secondes</p>\n"; + $t0 = $t1; +}*/ // // Inclusions de squelettes @@ -50,6 +59,7 @@ $fichier_cache = generer_nom_fichier_cache($fichier_requete); $chemin_cache = "CACHE/$fichier_cache"; $use_cache = utiliser_cache($chemin_cache, $delais); + $ecraser_cache = false; $cache_supprimes = Array(); @@ -67,6 +77,7 @@ if ($HTTP_COOKIE_VARS['spip_session'] OR $PHP_AUTH_USER) { verifier_visiteur(); } + // // Ajouter un forum // @@ -193,6 +204,7 @@ if ($effacer_cache) @unlink($chemin_cache); while (list(, $chemin_cache_supprime) = each($cache_supprimes)) @unlink($chemin_cache_supprime); + // // Verifier la presence du .htaccess dans le cache, sinon le generer // @@ -213,7 +225,6 @@ if (!file_exists("CACHE/.htaccess")) { } - // // Fonctionnalites administrateur (declenchees par le cookie admin, authentifie ou non) // @@ -288,6 +299,7 @@ if (!$timeout AND $db_ok AND (time()-lire_meta('calcul_rubriques') > 3600)) { calculer_rubriques(); } + // // Faire du menage dans le cache (effacer les fichiers tres anciens ou inutilises) // Se declenche une fois par heure quand le cache n'est pas recalcule -- GitLab