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

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

от miguel_ritchie , в категории: PHP , 2 года назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от jamey.kohler , 2 года назад

@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, которая будет содержать исходный текст, но с выделенными тегами для каждого найденного слова.

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

от nelle , год назад

@miguel_ritchie 

Код позволяет выделить все вхождения слова "example" в тексте и пометить их тегом с классом "highlight". Заметим, что результирующий текст сохраняется в переменной $highlighted_text.

1
2
3
4
5
$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);
echo $highlighted_text;


При использовании данного кода выведется следующий текст:

1
This is an <span class="highlight">example</span> of text with multiple <span class="highlight">examples</span>.


В этом примере каждое вхождение слова "example" выделяется тегом с классом "highlight". Вы можете изменить класс и стилизацию по своему усмотрению.