Здравствуйте. Пытаюсь сделать подсветку слов в тексте: PHP: <?php $text = preg_replace('/([^\s]?'.preg_quote($keyword,'/').')([$\s\,\.\!\-\?\;\:])/Ui','<b>$1</b>$2', $text); $keyword – слово которое нужно подсветить $title – текст в котором его ищем. Если $keyword и слово в тексте написано в одном регистре, то все работает. Если же не слово в тексте, например, начинается с заглавной буквы, то оно не будет подсвечено. Регистронезависимость планировал обеспечить модификатором "i", но не выходит.. В чем может быть проблема?
PHP: <?php $text = 'Привет, МИР! Тра та та и тарам пам пам.'; $keyword = 'та'; print preg_replace('/' . preg_quote($keyword, '/') . '/is', '<strong>$0</strong>', $text);
Sergey89, если изменить PHP: $text = 'Привет, МИР! Тра Та та и тарам пам пам.'; , То певрое "Та" не будет подсвечено. А мне нужно чтобы было.
Действительно, если используется кириллица то так и будет. На localhost проверял, кодировка UTF-8, добавлен модификатор u, работает при разном регистре. Если идей больше никаких нет, то предлагаю перекодировать строку в UTF-8 и там уже искать что нужно.
topas, в UTF было бы перекодировать удобно, но, к сожалению. нельзя. Ладно, всем спасибо, остановлюсь на strtolower()