strlen() в PHP — длина строки в байтах
strlen() возвращает число байтов в строке. Для количества Unicode-символов обычно нужна mb_strlen().
strlen(string $string): intКогда применять
Используйте strlen(), когда нужен размер бинарной строки, длина ASCII-значения или число байтов перед записью в протокол. Функция не декодирует текст и потому предсказуема для бинарных данных.
Главная особенность
В UTF-8 русская буква обычно занимает два байта. Поэтому strlen('Привет') вернёт 12, хотя человек видит шесть букв. Это не ошибка функции: она измеряет другой уровень представления данных.
Базовый пример
<?php
$value = 'Hello';
echo strlen($value); // 5UTF-8 и альтернатива
<?php
$text = 'Привет';
echo strlen($text); // 12 байт
echo mb_strlen($text); // 6 символовmb_strlen() требует расширение mbstring. Для пользовательского текста сначала определите, нужны байты, кодовые точки или графемы.
Типичные ошибки
Не применяйте strlen() как безусловную проверку длины имени или сообщения на русском языке. Ещё одна ошибка — считать строку пустой выражением strlen($value) без проверки типа входа: в PHP 8 передача массива приводит к TypeError.
Практическая проверка
Сравните результаты для строки с эмодзи и для комбинированного символа. Так становится видно различие между байтами, кодовыми точками и тем, что пользователь воспринимает одним знаком.
Связанные материалы
Источники и проверка
- PHP Documentation Group — структурный источник, без внешней ссылки
Последняя содержательная проверка: . Автор-разработчик Михаил Каржин. Методика качества контента.