PCRE и регистронезависимый русский поиск
Сегодня столкнулся с проблемой, не происходил нужный мне регистронезависимый поиск, а именно не отрабатывало вот это:
1 2 3 4 5 6 7 |
$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, а именно нужно выставить русскую локаль
1 2 3 |
setlocale(LC_ALL, 'ru_RU.CP1251'); |
либо для utf-8
1 2 3 |
setlocale(LC_ALL, 'ru_RU.UTF-8'); |
тогда наш пример примет такой вид:
1 2 3 4 5 6 7 8 |
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); |
Все работает 🙂
Author: | Tags: /
| Rating:
2 comments.
Write a comment