我有一段代码突出显示搜索功能中的关键字。相反,我希望能够突出显示关键字,即使它是文本单词的一部分。 例如,如果我搜索“el”并找到单词“hello”,则显示为h el lo。
以下是代码:
function highlight_keywords($content, $keywords) {
if (!is_array($keywords)) {
$keywords = explode(' ', $keywords);
}
foreach ($keywords as $keyword) {
if (trim($keyword) !== '') {
$content = preg_replace('/\b(' . preg_quote($keyword) . ')\b/i', '<span>\1</span>', $content);
}
}
return $content;
}
答案 0 :(得分:0)
试试这个:
$content = preg_replace('/(' . preg_quote($keyword) . ')/is','<span>$1</span>', $content);
答案 1 :(得分:0)
为了方便起见,您可以使用str_replace()
$keywords = array('el');
$string = 'hello world';
foreach($keywords as $keyword){
$string = str_ireplace($keyword, '<b>' . $keyword . '</b>', $string);
}
// $string is now: h<b>el</b>lo world