Jump to content
Sign in to follow this  
Blueb

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

Recommended Posts

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.

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites
$contenu = substr_replace($contenu, '<u>allergène</u>', strpos($contenu, 'allergène'), 9);

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...