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

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

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

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от jamey.kohler , 7 месяцев назад

@miguel_ritchie 

Для подсветки каждого найденного слова в тексте на PHP можно использовать функцию preg_replace(), которая выполняет поиск и замену подстрок в строке с использованием регулярных выражений.


Вот пример кода, который выделит все вхождения слова "example" в строке $text и пометит их тегом <span> с классом highlight:

1
2
3
4
$search = 'example';
$text = 'This is an example of text with multiple examples.';

$highlighted_text = preg_replace('/' . preg_quote($search) . '/i', '<span class="highlight">$0</span>', $text);


Регулярное выражение /b в начале и в конце означает границу слова, чтобы слово "example" не было найдено внутри других слов. preg_quote() используется для экранирования специальных символов, если они есть в поисковом запросе.


Результат будет сохранен в переменную $highlighted_text, которая будет содержать исходный текст, но с выделенными тегами для каждого найденного слова.