Функция strlen() не работает с русскими символами

Форум для тех кто начинает осваивать язык php.
Аватара пользователя
Вирус
Сообщения: 28

Функция strlen() не работает с русскими символами

Сообщение Вирус » Сб авг 08, 2015 1:34 pm

Добрый день. Столкнулся с такой проблемой функция strlen() не работает с русскими символами.

Код: Выделить всё

$str 'абвгдеёжзи'
$str strlen($str);
echo 
$str

Результат будет 20,хотя на самом деле в переменную вбито всего 10 символов.
Есть какие соображения? Спасибо.
Реклама
lyod
Сообщения: 76

Re: Функция strlen() не работает с русскими символами

Сообщение lyod » Сб авг 08, 2015 1:44 pm

Кодировка какая? UTF-8? Почти все кириллические символы имеют по 2 байта на символ. Вот и выдаёт неправильное количество. При работе с UTF-8 используйте mb_strlen(). Подробнее о ней читайте на php.net
Аватара пользователя
Slash
Администратор
Сообщения: 2028
Поблагодарили: 62 раза

Re: Функция strlen() не работает с русскими символами

Сообщение Slash » Сб авг 08, 2015 5:24 pm

Функцию strlen() можно заменить на функцию iconv_strlen() (вернет количество символов в строке), пример использования русских символов:

Код: Выделить всё

$str 'абвгдеёжзи'
$str iconv_strlen($str'utf-8');
echo 
$str

Вернуться в «PHP»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость