我正在尝试通过文本查找特定单词,然后在该单词周围添加HTML标签。例如,如果我有字符串“我去商店买苹果和橙子”,并希望在苹果周围添加HTML粗体标记。
问题是,我用于搜索字符串的单词存储在文本文件中,可以是大写、小写等。当我使用preg_replace进行替换时,我成功地替换了它并添加了标记,但是例如,如果我搜索APPLES并且字符串包含“apples”,它会将格式从apples更改为APPLES,我希望格式保持不变。
我尝试过使用preg_replace,但我找不到保持相同单词大小写的方法。这是我的代码:
foreach($keywords as $value)
{
$pattern = "/\b$value\b/i";
$replacement = "<b>$value</b>";
$new_string = preg_replace($pattern, $replacement, $string);
}
所以,如果$value是“APPLES”,那么由于$replacemant中有$value(即“APPLES”),它将把$string中所有大小写格式的“apples”都改成大写。
我如何在保持大小写格式不变的情况下实现这一点,而且不必使用多个循环来处理不同版本的大小写格式?
谢谢