【发布时间】:2012-09-09 23:08:48
【问题描述】:
我正在尝试在文本中搜索特定单词,然后在该单词周围添加一个 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,它会将 $string 中苹果的每个大小写格式更改为大写,因为 $replacemant 中包含 $value,即“APPLES”。
如何在 case 格式保持不变且不必使用不同版本的 case 格式执行多个循环的情况下实现这一点?
谢谢
【问题讨论】: