J'ai un problème de comparaison de chaînes de caratères entre un texte et le contenu d'un $_POST[].

Je récupère une requete en $_POST et je la compare dans un texte avec str_replace (pour mettre les mots de la requete en gras dans un texte)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
 
public function formatText($text, $keywords) {
		$text = htmlspecialchars_decode($text);
		$text = str_ireplace($keywords, '<b>'.$keywords.'</b>', $text);
		return $text;
	}
Quand il y a un seul mot clé, cela fonctionne, mais pour 2 mots clés, le str_ireplace ne fonctionne plus. Pourtant un echo de keywords ou de $_POST["keywords"] m'affiche bien les 2 mots clés compris dans le texte.

Pour exemple si je rentre "Ben harper" dans un formulaire et que je je fais

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
$text = str_ireplace($_POST["keywords"], '<b>'.$_POST["keywords"].'</b>', $text);
le texte ne subit pas de modification alors qu'il contient bien Ben Harper.
Bizzarre ???