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


Highlight multiple keywords from a given string

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

$keyword = 'should be bolded';

$string = 'This shouldbebolded';

预期结果:

"此应加粗。"这是谷歌式的亮点。

一个简单的函数就足以满足您的需求。你可以将你的单词分解成一个数组,单独搜索所有单词。

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

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

您可以使用CCD_ 4,foreachstr_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;
?>

结果是:

我的电视很好