PHP,突出显示关键字的一部分而不是整个单词

时间:2013-05-30 16:19:08

标签: php keyword

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

2 个答案:

答案 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