2010-08-15 90 views
26

如何使用str_ireplace(或类似的东西)替换某些文本进行格式化,然后使用相同的大写字母返回它?str_ireplace()保留大小写

例子:

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

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

将输出: 快红狐狸跳过懒惰的黄狗。

我希望它保留原始大小写,并且只应用格式(在本例中为粗体文本)。

谢谢。

回答

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

给 “快速红狐狸跃过懒黄狗。”如果要匹配特定的单词,可以添加单词边界:preg_replace('/\bthe\b/i', ...

如果你想参数替换,你可以使用preg_quote

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

非常好,谢谢。 – Francisc 2010-08-16 12:37:11

+0

*快速的棕色狐狸跳过懒狗 – Popnoodles 2014-04-02 01:18:35

2

无论是更换了与确切的词,或者使用的preg_replace:

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

谢谢,mhitza。 – Francisc 2010-08-16 12:38:16

相关问题