我创建了一个php函数来替换我想在文本中突出显示的单词。我唯一的问题是输入文本也可以是一些HTML代码。这会导致现有超链接中断。
public static function addLinks($text) {
$array_of_words = array("this", "is", "a", "test");
//replace the array_of_words with hyperlinks
$pattern = '#(?<=^|\W)('. implode('|', array_map('preg_quote', $array_of_words)) . ')(?=$|\W)#i';
$callback = function ($match) {
return "<a href=" . url('search') . "?search=" . urlencode($match[0]) . ">" . $match[0] . "</a>";
};
return preg_replace_callback($pattern, $callback, $text);
}
问题;是否可以在一段html代码上使用正则表达式函数,但是对a元素进行例外处理?否则html代码格式不正确。