Aller au contenu

Expressions régulières


FrenchKiss

Sujets conseillés

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 +

Lien vers le commentaire
Partager sur d’autres sites

Salut,

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

devrait jouer pour le remplacement, non ? ;)

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

Dan

Lien vers le commentaire
Partager sur d’autres sites

Posté (modifié)

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é

$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

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

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

je crois que

$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 :)

je pense à un foreach pour traiter chaque mot de mon tableau... ?

Mais là encore je n'en connais pas bien le fonctionnement :/

Modifié par FrenchKiss
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...