Aller au contenu

Sujets conseillés

Posté

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 +

Posté

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

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

Veuillez vous connecter pour commenter

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



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