PCRE и регистронезависимый русский поиск
Сегодня столкнулся с проблемой, не происходил нужный мне регистронезависимый поиск, а именно не отрабатывало вот это:
0 1 2 3 4 5 6 |
$word='модуль для сетевой игры'; $text='Модуль для сетевой игры '; echo str_replace(Array('.',' '),Array('\.','\s'),trim($word)); if (preg_match('|('.str_replace(Array('.',' '),Array('\.','\s'),trim($word)).')|Usix', $text, $regs)) {} print_r($regs); |
Сново нашел ответ на форуме dklab, а именно нужно выставить русскую локаль
0 1 2 |
setlocale(LC_ALL, 'ru_RU.CP1251'); |
либо для utf-8
0 1 2 |
setlocale(LC_ALL, 'ru_RU.UTF-8'); |
тогда наш пример примет такой вид:
0 1 2 3 4 5 6 7 |
setlocale(LC_ALL, 'ru_RU.CP1251'); $word='модуль для сетевой игры'; $text='Модуль для сетевой игры '; echo str_replace(Array('.',' '),Array('\.','\s'),trim($word)); if (preg_match('|('.str_replace(Array('.',' '),Array('\.','\s'),trim($word)).')|Usix', $text, $regs)) {} print_r($regs); |
Все работает 🙂
Автор: | Теги: /
| Рейтинг:
2 комментария
Написать свой