0

我有一段代码在搜索功能中突出显示关键字。相反,我希望能够突出显示关键字,即使它是文本单词的一部分。例如,如果我搜索“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;
}
4

2 回答 2

0

尝试这个:

$content = preg_replace('/(' . preg_quote($keyword) . ')/is','<span>$1</span>', $content);
于 2013-05-30T16:22:29.613 回答
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
于 2013-05-30T16:24:19.960 回答