Aller au contenu

Remplacer 1ère occurence chaîne de caractères


Blueb

Sujets conseillés

Bonjour,

Dans un texte contenu dans la variable $contenu, j'aimerais remplacer la première occurence du mot allergène pour le souligner.

Avec le code :

$contenu = str_replace("allergène","<u>allergène</u>",$contenu); ?>

il me remplace toutes les occurences du mot allergène de la variable $contenu.

Connaissez un moyen de ne souligner que la première occurence du mot allergène?

Merci d'avance.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Il te faut utiliser soit les expressions régulières, soit la fonction strpos, qui te permet de trouver la position de 'la première occurence d'une chaine', dans une autre chaine.

Une fois trouvée, tu n'as plus qu'à découper la chaine en question en 2 (avec substr() ), puis à effectuer le remplacement sur la première partie (avec str_replace() ), puis à recoller les 2 morceaux (avec.. un point ;) ).

Sinon, il te reste les expressions régulières, qui... ne sont pas si terribles que ca ;)

Anonymus.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

La fonction preg_replace permet l'utilisation d'un quatrième paramètre représentant le nombre de remplacements à effectuer.

En son absence, sa valeur est de -1, signifiant "pas de limite".

Donc:

$chaine=preg_replace("/allergène/","<u>allergène</u>",$chaine,1);

remplacera seulement la première occurence de "allergène" par sa version soulignée dans $chaine ;)

Elle a aussi l'avantage de pouvoir prendre des tableaux pour les deux premiers arguments, dans le cas de remplacements multiples.

Dan

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...