Bonjour à tous,
J'ai un petit soucis avec une expression régulière... bon c'est vrai c'est pas mon fort mais quand même...
Je vous explique...
J'ai un texte dans une base de donnée, et je voudrai qu'a la lecture il fasse l'extraction d'une partie seulement.
En gros, j'ai un certain nombre de caratères, un mot spécifique, et encore une suite de caractères.
Ma fonction actuelle, fonctionne très bien mais gros inconvénient, la requête met presque 5 voir 6 sec à afficher la page...
Voici mon code :
le texte en question fait a peu prêt 2000 caractères mais à terme cette fonction devra pouvoir gérer au moins 10000 caractères...
Quelqu'un auait-il une optimisation à me proposé svp ?
Merci d'avance
Edit: bon apparemment la lenteur viens du nombre de caractères à traiter.
j'ai pour le moment partiellement résolu le souci en faisant celà :
mais je recherche plutôt quelque chose du genre...
$regex="^(.*)+Introduction<\/code>+(.*)+<code>+(.*)";
malheureusement cette regex ne fonctionne pas .. si quelqu'un à une idée
Modifié par Blackstorm (06 Aug 2008 - 22:44)
J'ai un petit soucis avec une expression régulière... bon c'est vrai c'est pas mon fort mais quand même...
Je vous explique...
J'ai un texte dans une base de donnée, et je voudrai qu'a la lecture il fasse l'extraction d'une partie seulement.
En gros, j'ai un certain nombre de caratères, un mot spécifique, et encore une suite de caractères.
Ma fonction actuelle, fonctionne très bien mais gros inconvénient, la requête met presque 5 voir 6 sec à afficher la page...
Voici mon code :
$regex="^(.*)+(Introduction<\/code>)+(.*)";
$text=bbcodes($data['desc_art']);
eregi($regex,$text,$modif);
echo substr($modif[3],0,400)."...";
le texte en question fait a peu prêt 2000 caractères mais à terme cette fonction devra pouvoir gérer au moins 10000 caractères...
Quelqu'un auait-il une optimisation à me proposé svp ?
Merci d'avance

Edit: bon apparemment la lenteur viens du nombre de caractères à traiter.
j'ai pour le moment partiellement résolu le souci en faisant celà :
$text=substr(bbcodes($data['desc_art']),0,500);
$regex="^(.*)+Introduction<\/code>+(.*)";
ereg($regex,$text,$modif);
echo $modif[2]."...";
mais je recherche plutôt quelque chose du genre...
$regex="^(.*)+Introduction<\/code>+(.*)+<code>+(.*)";
malheureusement cette regex ne fonctionne pas .. si quelqu'un à une idée

Modifié par Blackstorm (06 Aug 2008 - 22:44)