我需要从字符串中单独突出显示每个单词,即使该字符串只有一个单词。
$keyword = 'should be bolded';
$string = 'This shouldbebolded';
预期结果:
“这个应该被绑定。” 这就是谷歌的亮点。
答案 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)
你可以使用
explode
,
foreach
和
str_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;
?>
结果将是:
我的电视 很好