Strlen: примеры (PHP)
strlen(string string): intОсновы функции strlen
Функция strlen в PHP предназначена для получения длины строки. Она возвращает количество байт в переданной строке, а не количество символов, что важно для многобайтовых кодировок.
Функция применяется для проверки длины строк перед валидацией данных, обрезкой текста, ограничением ввода или при работе с бинарными данными.
Функция принимает один обязательный параметр:
- $string (string) - строка, длину которой необходимо измерить. Если аргумент не является строкой, PHP попытается привести его к строке.
Простые примеры
echo strlen('Привет');12
echo strlen('\n\t');2
echo strlen(12345);
echo strlen(true);5 1
Похожие функции в PHP
Измеряет длину строки с учетом кодировки. Предпочтительнее для многобайтовых строк (UTF-8).
Определяет количество графемных кластеров в строке, что полезно для сложных символов (например, эмодзи).
Аналогична mb_strlen, но использует библиотеку iconv.
strlen подходит для ASCII-строк и бинарных данных. Для UTF-8 текстов лучше применять mb_strlen с указанием кодировки.
Типичные ошибки
if (strlen(' Café ') == 5) {
echo 'Неверно для UTF-8';
}Неверно для UTF-8
$str = '????';
echo 'Длина: ' . strlen($str);Длина: 4
Для эмодзи strlen вернет 4 байта, а не один символ.
echo strlen(null);0
Изменения в PHP 8
В PHP 8 функция strlen больше не принимает параметры типа null, что приводит к TypeError. Ранее возвращался 0.
strlen(null);TypeError: strlen(): Argument #1 ($string) must be of type string, null given
Также улучшена производительность и внутренняя обработка строк.
Расширенные примеры
$password = 'secret';
if (strlen($password) < 8) {
echo 'Пароль слишком короткий';
}Пароль слишком короткий
function truncate($str, $bytes) {
if (strlen($str) <= $bytes) return $str;
return substr($str, 0, $bytes) . '...';
}
echo truncate('Длинный текст', 10);Длинный т...
$str = str_repeat('a', 1000000);
$start = microtime(true);
strlen($str);
$time = microtime(true) - $start;
echo 'Время: ' . $time . ' сек';Время: 4.0E-6 сек
$data = file_get_contents('image.jpg');
echo 'Размер файла в байтах: ' . strlen($data);Размер файла в байтах: 24578
$text = 'PHP это популярный язык';
$words = explode(' ', $text);
$longWords = array_filter($words, fn($w) => strlen($w) > 3);
echo count($longWords);3
Аналоги в других языках
Strlen в Python
len('Привет')6
В Python len() возвращает количество символов, а не байт.
Strlen в Javascript
'Привет'.length;6
JavaScript считает символы UTF-16, что может давать неожиданные результаты для суррогатных пар.
Strlen в MySQL
SELECT CHAR_LENGTH('Привет'), LENGTH('Привет');6 | 12
CHAR_LENGTH считает символы, LENGTH - байты.