[PHP] str_replace

Bonjour, j’ai une page php ou je peux faire une recherche sur un mot.
Je voudrait tagger le mot trouver dans le texte, puis l’afficher.

Cela fonctionne bien, mais str_replace est sensible a la casse. Donc dans certain cas, mes tag ne fonctionne pas:

$titreSyn= str_replace($mot,"<B style='color:black;background-color:#ffff66'><FONT color=\"red\" bgcolor=\"yellow\" >$mot</FONT></b>",$titreSyn);

ici, si le mot chercher est bonjour et que dans mon “$titreSyn”, c’est ecrit Bonjour, cela ne marche pas…

qq’un a une idée

ps: je n’ai pas php5 donc oubliez str_ireplace… seulement php4

merci

Un peu zarb ton html non ? le bg color sur le tag B il sert à rien non ? Enfin même dans IE je vois pas d’effet notable.

Ca répond pas à ta question mais ca me semble mieux ca =>

.highlight{
font-weight:bold;
color:red
background-color:yellow;
}

<span class=\"highlight\">$mot</span>

Code plus léger sur l’ensemble d’une page :slight_smile:

Tout bien réfléchi : pourquoi ne pas passer en lowercase ton $mot pour les besoins de la comparaison ? strtolower($mot) ??

stripos existe en php4.

Fait mumuse avec :slight_smile: Sinon :

preg_replace(’/’ . preg_quote($mot, ‘/’). ‘/i’, ‘<span class=“foo”>$0</span>’, $truc);