Выделить несколько ключевых слов из заданной строки - PullRequest
0 голосов
/ 18 февраля 2012

Мне нужно выделить каждое слово отдельно от строки, даже если строка состоит только из одного слова.

$keyword = 'should be bolded';

$string = 'This shouldbebolded';

Ожидаемый результат:

"Этот должен быть помечен ." Это гугл как гвоздь.

Ответы [ 2 ]

2 голосов
/ 18 февраля 2012

Вам достаточно простой функции. Вы можете разбить ваши слова на массив, чтобы найти их все по отдельности.

Просто используйте функцию explode(), чтобы разбить ваши слова на массивы и передать их функции ниже.

function highlightWords($string, $words)
 {
    foreach ( $words as $word )
    {
        $string = str_ireplace($word, '<span class="highlight">'.$word.'</span>', $string);
    }
    return $string;
 }
1 голос
/ 18 февраля 2012

Вы можете сделать это, используя 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;

?>

И результатбудет:

Мой телевизор это приятно

...