Version complète: sur le forum Webmaster Hub : Expressions régulières
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net
FrenchKiss
Hello à tous
J'ai dans un tableau $search une liste de mots.
J'aimerais parcourir un string $message pour :
- trouver les X premières occurences de chacun de ces mots (par défaut, X=1)
- remplacer "mot" par "[abbr]mot[/abbr]" ...

A priori, une fonction preg_replace ferait l'affaire, mais ma connaissance très limitée des regexp me bloque un peu, aussi fais-je appel aux âmes charitables qui peuplent le Hub :)

Merci d'avance à ceux qui voudront bien m'éclairer !
a +
Dan
Salut,

CODE
$message = ereg_replace("(mot)", "[abbr]\\1[/abbr]", $message);

devrait jouer pour le remplacement, non ? wink.gif

Remplaces "(mot)" par l'expression que tu veux entourer des tags.

Dan
FrenchKiss
Il semblerait que ça ne passe pas.
Je pense que ça vient du fait que je cherche à remplacer PLUSIEURS mots
En fait, j'ai essayé

CODE
$message = ereg_replace($search, "[abbr]\\1[/abbr]", $message);

et il ne se passe rien -> $search étant obtenu par mysql_fetch_row
(c'est donc un tableau de mots à remplacer).
----- sinon
J'ai essayé avec un mot en particulier
CODE
$message = ereg_replace("bonjour", "[abbr]\\1[/abbr]", $message);

et je me retrouve avec des [abbr]\1[/abbr] dans mon texte à la place des "bonjour" smile.gif

je crois que
CODE
$message = ereg_replace($mot, "[abbr]$mot[/abbr]", $message);
est donc plus adapté ... Enfin moi j'en ai 150 des mots à remplacer, je me vois mal ajouter 150 lignes de code smile.gif

je pense à un foreach pour traiter chaque mot de mon tableau... ?
Mais là encore je n'en connais pas bien le fonctionnement :/
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.