突出显示给定字符串中的多个关键字

时间:2012-02-18 16:48:43

标签: php keyword highlight

我需要从字符串中单独突出显示每个单词,即使该字符串只有一个单词。

$keyword = 'should be bolded';

$string = 'This shouldbebolded';

预期结果:

“这个应该被绑定。” 这就是谷歌的亮点。

2 个答案:

答案 0 :(得分:2)

一个简单的功能就足以满足您的要求。您可以将单词分成数组以分别搜索所有单词。

只需使用explode()函数将单词分解为数组并将其传递给下面的函数。

function highlightWords($string, $words)
 {
    foreach ( $words as $word )
    {
        $string = str_ireplace($word, '<span class="highlight">'.$word.'</span>', $string);
    }
    return $string;
 }

答案 1 :(得分:1)

你可以使用 explodeforeachstr_replace

<?php
# Keywords
$keywords_str = 'tv nice';

# String
$string = 'My tv is nice';

# Operation result(to not modify $string)
$result = $string;

# Split $keywords by spaces into array of single keywords
$keywords = explode(' ', $keywords_str);

# Loop keywords array
foreach($keywords as $keyword)
{
    # Replace every keyword occurence to make it bold
    $result = str_replace($keyword, "<b>$keyword</b>", $result);
}               

echo $result;

?>

结果将是:

  

我的电视 很好