|
|
|
| Здравствуйте!
Есть такой код:
$str = substr($str, 0, 15);
$str = preg_replace("/[^\w\x7F-\xFF\s]/", " ", $str);
$simvol = mb_strlen($str, 'utf-8');
if ($simvol<5){echo $eror;}
|
Я решил использовать "mb_strlen($str);" для определения количество символов в строке, для того чтобы сообщить пользователю если он введёт меньше 5 символов в строку. Однако если пользователь введёт что-то наподобие: "{[&dt#$пл<<:*&" то переменная "simvol" будет иметь значение "14" и ошибка не выскочит хотя переменная "str" имеет значение "dtпл" что по сути меньше 5.
Почему так происходит? И как решить эту проблему?
Заранее спасибо. | |
|
|
|
|
|
|
|
для: sasha12342
(15.03.2013 в 20:38)
| | попробуйте к паттерну добавить модификатор u. | |
|
|
|
|
|
|
|
для: psychomc
(15.03.2013 в 23:18)
| | Я все плохие символы менял на пробел, а надо так:
$str = preg_replace("/[^\w\x7F-\xFF\s]/", "", $str);
|
Семь раз отмерь и один раз отрежь :) | |
|
|
|