Пример
Например нам нужно подсветить слова в тексте. Рассмотрим пример в двух кодировках — utf-8 и windows-1251
Кодировка UTF-8
Давно пора переходить на юникод.
<?php
$words = 'тексте этот слова строке текст время балды регистр подсветить';
$text = 'В нашем тЕксТе нам необходимо найти все Слова, указанные в стрОке поиска и подсветить их красным цветом. Так же во время поиска необходимо учитывать РЕГИСТр букв. Этот ТЕКСТ я набирал от Балды, лишь бы выдать пример. Все слова должны быть подсвечены.';
echo '<p>'.$text.'</p>';
echo '<p>Нам нужно подсветить слова: <strong>'.$words.'</strong></p>';
// устанавливаем локаль
setlocale(LC_ALL, 'ru_RU.UTF-8');
// заменяем пробелы на символ |
$words = str_replace(' ', '|', $words);
// нам нужны 2 модификатора:
// u — модификатор включает обработку шаблонов как UTF-8 строк
// i — символы в шаблоне соответствуют как верхнему, так и нижнему регистрам
$hl_text = preg_replace('/('.$words.')/ui', '<span style="color:red;">$1</span>', $text);
echo '<p>'.$hl_text.'</p>';
?>
Кодировка WINDOWS-1251
Windows-1251 все равно никто не отменял.
<?php
$words = 'тексте этот слова строке текст время балды регистр подсветить';
$text = 'В нашем тЕксТе нам необходимо найти все Слова, указанные в стрОке поиска и подсветить их красным цветом. Так же во время поиска необходимо учитывать РЕГИСТр букв. Этот ТЕКСТ я набирал от Балды, лишь бы выдать пример. Все слова должны быть подсвечены.';
echo '<p>'.$text.'</p>';
echo '<p>Нам нужно подсветить слова: <strong>'.$words.'</strong></p>';
// устанавливаем локаль
setlocale(LC_ALL, 'ru_RU.CP1251');
// заменяем пробелы на символ |
$words = str_replace(' ', '|', $words);
// нам нужен 1 модификатор:
// i — символы в шаблоне соответствуют как верхнему, так и нижнему регистрам
$hl_text = preg_replace('/('.$words.')/i', '<span style="color:red;">$1</span>', $text);
echo '<p>'.$hl_text.'</p>';
?>
Результат
Результат в обоих случаях будет одинаковый:
В нашем тЕксТе нам необходимо найти все Слова, указанные в стрОке поиска и подсветить их красным цветом. Так же во время поиска необходимо учитывать РЕГИСТр букв. Этот ТЕКСТ я набирал от Балды, лишь бы выдать пример. Все слова должны быть подсвечены.
Нам нужно подсветить слова: тексте этот слова строке текст время балды регистр подсветить
В нашем тЕксТе нам необходимо найти все Слова, указанные в стрОке поиска и подсветить их красным цветом. Так же во время поиска необходимо учитывать РЕГИСТр букв. Этот ТЕКСТ я набирал от Балды, лишь бы выдать пример. Все слова должны быть подсвечены.