2010-08-15 4 views
26

Comment utiliser str_ireplace (ou quelque chose de similaire) pour remplacer du texte pour le formatage et le renvoyer avec les mêmes majuscules?str_ireplace() avec conservation de cas

Exemple:

$original="The quick red fox jumps over the lazy brown dog."; 
$find="thE"; 

print str_ireplace($find,'<b>'.$find.'</b>',$original); 

qui sortie: lE renard roux rapide saute par-dessus le chien brun paresseux.

Je veux qu'il conserve le cas d'origine et n'applique que le formatage, dans cet exemple, du texte en gras.

Merci.

Répondre

39
$original = "The quick red fox jumps over the lazy brown dog."; 
$new = preg_replace("/the/i", "<b>\$0</b>", $original); 

donne "Le renard roux rapide saute par-dessus le chien brun paresseux." Si vous souhaitez associer des mots spécifiques, vous pouvez ajouter des limites de mots: preg_replace('/\bthe\b/i', ....

Si vous souhaitez paramétrer le remplacement, vous pouvez utiliser preg_quote:

preg_replace('/\b' . preg_quote($word, "/") . '\b/i', "<b>\$0</b>", $original); 
+0

Excellent, merci. – Francisc

+0

* Le renard brun rapide saute par-dessus le chien paresseux – Popnoodles

2

remplacerons avec le mot exact, ou utilisez preg_replace:

preg_replace('/(The)/i', "<strong>$1</strong>", $original); 
+0

Merci, mhitza. – Francisc

Questions connexes