8791 sujets

Développement web côté serveur, CMS

Salut,

Je veux qu'a partir d'un mot-clef entré par l'utilisateur dans le cadre d'une recherche, mon code mette un background a chaque fois qu'il trouve ce mot-clef dans le texte affiché. Pour ca je fais un str_replace() qui ajoute un background a chaque occurence du mot.

Probleme: si mon mot-clef est "dna" et que dans mon texte j'ai "DNA", str_replace considere que c'est pas la meme chose et ne fait rien dans ce cas-la. Comment remedier a ca ?
Modifié par apericube (12 Feb 2010 - 11:13)
Maintenant il trouve "DNA" et le remplace par "<span class='truc'>dna</span>" avec la classe truc ayant un background.

J'aimerais bien qu'il remplace plutot par "<span class='truc'>DNA</span>", c-a-d qu'il respecte la casse au moment de remplacer (mais pas au moment de detecter!). Iz dat possibeule ?
$search = 'dna';
$string = 'il était une fois dna qui allait devenir DNA mais hélas...';
$pattern = '/('.$search.')/i';
$replacement = '<strong>$1</strong>';
echo preg_replace($pattern, $replacement, $string);