Optimisez ses regex ?

vin-moi
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 391
Inscription: 22 Nov 2004

Optimisez ses regex ?

Message le Lun Juin 26, 2006 14:52

Salut à tous !

Voilà, je ne suis pas fervent connaisseur en regex et je m'interesse à l'optimisation de celle-ci.

Voilà le genre de regex que j'ai :

Code: Tout sélectionner
$string = preg_replace("#(?:<br />\n[\t]*)*\[t\](?:<br />\n[\t]*)*(.*?)(?:<br />\n[\t]*)*\[/t\](?:<br />\n[\t]*)*#is", "\n<h3>\\1</h3>\n", $string);


Explication : J'utilise ca dans un texte contenant des balises [t] et [\t] (= titre). Ce que je cherche à faire est donc de les remplacer par du code html. De plus, il ne doit pas y avoir de retour à la ligne ni tabulation autour des balises d'ou les (?:<br />\n[\t]*) autour de ces balises.

Je voudrais savoir ce que vous en pensez, et ce que vous me conseillerez eventuellement de modifier afin d'optimiser la vitesse d'execution ?

merci d'avance !

darkos
WRInaute discret
WRInaute discret
 
Messages: 134
Inscription: 19 Oct 2005

Message le Lun Juin 26, 2006 15:03

Ca suffit pas un truc comme ça
$texte = preg_replace("#\[b\](.*?)\[/b\]#si", "<span style=\"font-weight: bold\">\\1</span>", $texte);

en replacant par tes balises et le code html.
?
Désolé j'avais pas vu le problème des retours chariot.

vin-moi
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 391
Inscription: 22 Nov 2004

Message le Lun Juin 26, 2006 16:10

Salut,

Alors pour ce qui est des retour à la ligne, j'ai réussi à diviser par 10 le temps d'execution de la fonction (il y a d'autres lignes de regex) en traitant les retour à la ligne dans une regex toute seule au lieux de le faire à chaque fois que je traite une balise !

c'est dejà ca de gagné !


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité