[spip-dev] [Patch] Correction de bug d'indexation

Bonjour à tous,

j'essuie depuis le début de mon utilisation de SPIP des problèmes de timeout lors de la création/mise à jour d'un article déjà publié de taille importante.

J'ai enfin trouvé le coupable, et surtout comment corriger le problème : dans le fichier ecrire/inc_index.php3, modifier dans la fonction indexer_chaine la ligne :

        $table = split(" +([^ ]{0,$min_long} +)*", ' '.$texte);
en
        $table = preg_split('/ +([^ ]{0,".$min_long."} +)*/', ' '.$texte);

Avantage : d'après la doc PHP, c'est sensé être plus rapide, et c'est compatible PHP3 (version >= 3.0.9).
Inconvénient : qq'un utilise une version à la 3.0.9 de PHP ?

Suite à cette modification, je n'ai plus aucun timeout à l'enregistrement des modifs de l'article.

Cdt,

J.

Merci pour l'astuce, mais le package pcre n'est pas forcément présent (sauf
à partir de php 4.2.0) ; il faut donc d'abord tester sa présence avant de
lancer le preg_split.

Je vais passer cette astuce dans le CVS...

J'ai enfin trouvé le coupable, et surtout comment corriger le problème :
dans le fichier ecrire/inc_index.php3, modifier dans la fonction
indexer_chaine la ligne :

        $table = split(" +([^ ]{0,$min_long} +)*", ' '.$texte);
en
        $table = preg_split('/ +([^ ]{0,".$min_long."} +)*/', ' '.$texte);

Avantage : d'après la doc PHP, c'est sensé être plus rapide, et c'est compatible PHP3 (version >= 3.0.9).
Inconvénient : qq'un utilise une version à la 3.0.9 de PHP ?

-- Fil