Онегин
Новичок
Вопросы по работе рег. выражений с кодировкой UTF-8
Здравствуйте, никогда не работал с utf, но появилась необходимость и появились вопросы по теме. Помогите разобраться.
$string="тестовая Запись в строку";
1)
Я в одной статье читал, что модификатор /i для utf для символов кириллицы не работает, что нужно предварительно отдельно преобразовывать строку в нижний регистр а потом обрабатывать регуляркой, так ли это ? я протестировал у себя, вроде модификатор /i нормально работает с кириллицей. но вдруг на хостинге проблема может появится ?
2)
\b почему то не работает, я что то неправильно делаю ?
3)
Эта строчка какието символы пропускает а какие то нет, а как же быть ? Если не указывать диапазон, а перечислить все символы русского алфавита то работает нормально (с английскими проблем нет, работает a-zA-Z) вот так :
нельзя ли сократить все таки запись ?
Еще mb_ereg неправильно считает кол-во символов если использовать {1,10}. Я понимаю что русские символы кодируются 2мя байтами, но preg_match это делает правильно.
4)
Здравствуйте, никогда не работал с utf, но появилась необходимость и появились вопросы по теме. Помогите разобраться.
$string="тестовая Запись в строку";
1)
PHP:
echo preg_replace ("/запись/ui",'*$1*', $string); // Работает правильно
2)
PHP:
echo preg_replace ("/(\bзапись\b)/ui",'*$1*', $string); // Не работает
3)
PHP:
echo mb_ereg('^([а-яА-ЯёЁ ]+)$',$string);
PHP:
echo mb_ereg('^([абвгдеёжзиёклмнопрстуфхцчшщьъыэюяАБВГДЕЁЖЗИЁКЛМНОПРСТУФХЦЧШЩЬЪЫЭЮЯ ]+)$',$string);
Еще mb_ereg неправильно считает кол-во символов если использовать {1,10}. Я понимаю что русские символы кодируются 2мя байтами, но preg_match это делает правильно.
4)
PHP:
echo mb_ereg ('^(тестовая Запись в строку)$',$string); // Работает правильно
echo mb_eregi ('^(тестовая запись в строку)$',$string); // Не работает, не должен учитывать регистр, но учитывает. Почему ?

