Как сделать подсветку каждого найденного слова в тексте на php?

Пользователь

от rebekah , в категории: PHP , 7 месяцев назад

Как сделать подсветку каждого найденного слова в тексте на php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от jeromy_ruecker , 7 месяцев назад

@rebekah 

Вот пример кода для подсветки каждого найденного слова в тексте на PHP:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
function highlightWords($text, $words) {
    foreach ($words as $word) {
        $text = preg_replace("/($word)/i", '<span style="background-color: yellow;">$1</span>', $text);
    }
    return $text;
}

$text = "Это пример текста, в котором нужно найти и подсветить определенные слова.";
$words = array("пример", "текста", "найди"); // список слов, которые нужно подсветить

$highlightedText = highlightWords($text, $words);

echo $highlightedText;


В этом коде используется функция highlightWords, которая принимает текст и список слов, которые нужно подсветить. Она заменяет каждое найденное слово на его подсвеченную версию, заключенную в тег <span> с заданным стилем (background-color: yellow;).


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


Обратите внимание, что в примере используется регулярное выражение "/($word)/i", которое ищет слово целиком без учета регистра.  обозначает границу слова, i в флагах регулярного выражения делает матч нечувствительным к регистру.


Вместо жесткого задания стиля подсветки можно использовать класс CSS и присвоить соответствующий класс элементу <span>.