|
|
|
| Приветствую,
Есть код:
$tmp = preg_split('/\s+/', $string);
$_tmp = preg_grep('/^[^\+|-].{3,}/', $tmp);
array_walk($_tmp, array(&$this,'_create_string_like'));
// +
$__tmp = preg_grep('/^\+.{3,}/', $tmp);
array_walk($__tmp, array(&$this,'_create_string_like'), '+');
// -
$___tmp = preg_grep('/^-.{3,}/', $tmp);
array_walk($___tmp, array(&$this,'_create_string_like'), '-');
|
Перенес сайт, базу, файлы на utf8, разбираюсь с поиском. Оказалось, что при обработке русских букв preg_grep превращает слово аватар как аваЂаЀ... В рузельтате таких преобразований поиск естественно не работает. Как исправить ситуацию, в гугле вменяемого решения не нашел... | |
|
|
|
|
|
|
|
для: reimax
(13.11.2011 в 17:06)
| | При использовании UTF-8, следует добавлять модификатор u | |
|
|
|
|
|
|
|
для: cheops
(13.11.2011 в 18:23)
| |
preg_grep('/^[^\+|-].{3,}/u', $tmp);
|
ничего не изменилось | |
|
|
|
|
|
|
|
для: reimax
(13.11.2011 в 17:06)
| | Мне кажется что у Вас при переносе БД данные пострадали... "аваЂаЀ" - не похоже на UTF. Вернее буква Т вообще не понятная, а Р - это не утф, а асци код буквы р в раскладке утф. | |
|
|
|
|
|
|
|
для: Sfinks
(15.11.2011 в 21:29)
| | Да, спасибо. Вопрос решен кодом выше и повторным переносом бд. | |
|
|
|