2012-02-18 57 views
-1

我需要從一個字符串分開顯示的每個字,即使字符串是隻有一個字突出顯示多個關鍵字。從給定的字符串

$keyword = 'should be bolded';

$string = 'This shouldbebolded';

預期結果:

「這shouldbebolded。」 這是谷歌喜歡的亮點。

回答

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; 

?> 

其結果將是:

電視不錯

2

一個簡單的功能就足以滿足您的要求。你可以將你的單詞分解成一個數組來分別搜索它們。

只需使用explode()功能,打破你的話到數組並把它傳遞到下面的功能。

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

謝謝,我將使用該函數,因爲我需要它在多個地方。問候。 – 2012-02-18 17:28:33

相關問題