Remplacer des mots

10 réponses
AuteurMessage

mirage |
Modérateur

Photo de mirage

Inscrit le : 04/05/2005

# Le 09/08/2005 à 15:46

Hello

J'ai une petite question. Je voudrais remplacer plusieurs mots dans un texte, voir un petit exemple iciOuvrir dans une nouvelle fenetre , mais je me demandais si il n'y avait pas une autre technique que de faire des str_replace à tout va ? Ca risque d'être lourd vu le nombre de mots à chercher pour le remplacement...

Je sais pas si c'est bien clair, c'est pas évident à expliquer

Merci

Rano | Jean
Modérateur

Photo de Rano

Inscrit le : 13/04/2005

# Le 09/08/2005 à 16:25

Vaut mieux aller voir du coté du preg_replace : http://fr.php.net/manual/fr/function.preg-replace....Ouvrir dans une nouvelle fenetre

Mais si tu veux pas faire charger ta machine, tu peux utiliser celle de tes visiteurs en le faisant en JS

Chambres d'hote tavelOuvrir dans une nouvelle fenetre
Séjours en provenceOuvrir dans une nouvelle fenetre
Forum mariageOuvrir dans une nouvelle fenetre

mirage | Vincent
Modérateur

Photo de mirage

Inscrit le : 04/05/2005

# Le 09/08/2005 à 16:29

Mouarf, vu le nombre de mots à remplacer (enfin pas remplacer mais ajouter la définition au passage de la souris), je crois que je vais passer par du Javascript...

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 09/08/2005 à 17:44

Ca reste le même principe que pour "parser" du BBCode, des smileys ou autre.

Perso quelques solutions me plaisent bien :
- un appel à str_replace, en utilisant des tableaux
- un appel à preg_replace (à cause des majuscules), en utilisant une expression régulière de ce genre : '#(mot1|mot2|...|motN)#' (attention à la limite)

Si les tableaux ou les expressions régulières sont "pré-calculés", le traitement est très rapide.

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

Zalex14 | Alexandre
Modérateur

Photo de Zalex14

Inscrit le : 09/05/2005

# Le 09/08/2005 à 18:06

arrff.. je suis en train de faire la même chose que toi mirage..
J'utilise preg_replace, justement à cause des majuscules mais ca génére un autre problème : la rêgle s'applique aussi aux mots contenu dans la pop. donc si tu fais une définition avec un mot dans la liste des mots à définir ca devient n'importequoi : ca crée une pop dans la pop...

Exemple du gros n'importe quoi :
http://www.partoch.com/cours/cours_guitare,101,Ana...Ouvrir dans une nouvelle fenetre

Je ne vois pas comment interdire à preg_replace de modifier le contenu des pop déjà ajoutées dans le texte..

Pour le principe je fais comme cela :
je stocke dans des tableaux le terme recherché et la chaine à remplacer pour ce terme.
$terme et $replace par exemple, puis je remplace :

$cours = preg_replace($search, $replace, $texte);










Mieux vaut s'attendre au prévisible que d'être surpris par l'inattendu.

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 09/08/2005 à 18:11

Zalex : sur mon forum je fais en 2 passes. La première passe va par exemple remplacer un lien par £1£, et le smiley suivant par £2£, etc. Et la seconde passe remplace tous les £**£ par le code HTML voulu.

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

Zalex14 | Alexandre
Modérateur

Photo de Zalex14

Inscrit le : 09/05/2005

# Le 09/08/2005 à 18:14

Ah, cool l'astuce ! Merci Bool !

Mieux vaut s'attendre au prévisible que d'être surpris par l'inattendu.

mirage | Vincent
Modérateur

Photo de mirage

Inscrit le : 04/05/2005

# Le 09/08/2005 à 18:21

Je vais regarder ça, merci

Zalex14 | Alexandre
Modérateur

Photo de Zalex14

Inscrit le : 09/05/2005

# Le 09/08/2005 à 18:28

Arr... Merci Bool !! ca marche nickel maintenant ! dire que je me suis pris la tête une bonne partie de matinée...

Mieux vaut s'attendre au prévisible que d'être surpris par l'inattendu.

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 09/08/2005 à 18:38

bah.... de rien

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

webibao |
Anonyme

 

Inscrit le : 09/05/2005

# Le 09/08/2005 à 20:00

j'adore ce forum

on a un probleme y'a toujours des gens pour aider

trop bien webmasterclub

Moi et après tout pourquoi pas!

Répondre

Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.

© MHN - Tous droits réservés | CNIL N°844440 | 23/11/2024 13:53:08 | Généré en 6.05ms | Contacts | Mentions légales |