我需要從一個字符串分開顯示的每個字,即使字符串是隻有一個字突出顯示多個關鍵字。從給定的字符串
$keyword = 'should be bolded';
$string = 'This shouldbebolded';
預期結果:
「這shouldbebolded。」 這是谷歌喜歡的亮點。
我需要從一個字符串分開顯示的每個字,即使字符串是隻有一個字突出顯示多個關鍵字。從給定的字符串
$keyword = 'should be bolded';
$string = 'This shouldbebolded';
預期結果:
「這shouldbebolded。」 這是谷歌喜歡的亮點。
你可以做到這一點使用 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;
?>
其結果將是:
我電視是不錯
一個簡單的功能就足以滿足您的要求。你可以將你的單詞分解成一個數組來分別搜索它們。
只需使用explode()
功能,打破你的話到數組並把它傳遞到下面的功能。
function highlightWords($string, $words)
{
foreach ($words as $word)
{
$string = str_ireplace($word, '<span class="highlight">'.$word.'</span>', $string);
}
return $string;
}
謝謝,我將使用該函數,因爲我需要它在多個地方。問候。 – 2012-02-18 17:28:33