Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: preg_grep, utf8, кириллица
 
 автор: reimax   (13.11.2011 в 17:06)   письмо автору
 
 

Приветствую,

Есть код:

                $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 превращает слово аватар как аваЂаЀ... В рузельтате таких преобразований поиск естественно не работает. Как исправить ситуацию, в гугле вменяемого решения не нашел...

  Ответить  
 
 автор: cheops   (13.11.2011 в 18:23)   письмо автору
 
   для: reimax   (13.11.2011 в 17:06)
 

При использовании UTF-8, следует добавлять модификатор u

  Ответить  
 
 автор: reimax   (13.11.2011 в 18:53)   письмо автору
 
   для: cheops   (13.11.2011 в 18:23)
 

preg_grep('/^[^\+|-].{3,}/u', $tmp);


ничего не изменилось

  Ответить  
 
 автор: Sfinks   (15.11.2011 в 21:29)   письмо автору
 
   для: reimax   (13.11.2011 в 17:06)
 

Мне кажется что у Вас при переносе БД данные пострадали... "аваЂаЀ" - не похоже на UTF. Вернее буква Т вообще не понятная, а Р - это не утф, а асци код буквы р в раскладке утф.

  Ответить  
 
 автор: reimax   (08.12.2011 в 19:09)   письмо автору
 
   для: Sfinks   (15.11.2011 в 21:29)
 

Да, спасибо. Вопрос решен кодом выше и повторным переносом бд.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования