我正在使用以下函数来突出显示字符串中搜索到的关键字。它工作正常,但问题不大。
$text="This is simple test text";
$words="sim text";
echo highlight($text, $words);
使用以下功能,它突出显示“简单”和“文本”单词,我希望它应该只突出显示“sim”和“文本”单词。我需要进行哪些类型的更改才能达到此结果。请指教。
function highlight($text, $words)
{
if (!is_array($words))
{
$words = preg_split('#\\W+#', $words, -1, PREG_SPLIT_NO_EMPTY);
}
$regex = '#\\b(\\w*(';
$sep = '';
foreach ($words as $word)
{
$regex .= $sep . preg_quote($word, '#');
$sep = '|';
}
$regex .= ')\\w*)\\b#i';
return preg_replace($regex, '<span class="SuccessMessage">\\1</span>', $text);
}