2012-02-18 132 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

相关问题