1

Strlen: примеры (PHP)

Функция 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

mb_strlen

Измеряет длину строки с учетом кодировки. Предпочтительнее для многобайтовых строк (UTF-8).

grapheme_strlen

Определяет количество графемных кластеров в строке, что полезно для сложных символов (например, эмодзи).

iconv_strlen

Аналогична 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 байта, а не один символ.

Работа с null
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

Также улучшена производительность и внутренняя обработка строк.

Расширенные примеры

Проверка минимальной длины
Пример php
$password = 'secret';
if (strlen($password) < 8) {
    echo 'Пароль слишком короткий';
}
Пароль слишком короткий
Обрезка строки с учетом байт
Пример php
function truncate($str, $bytes) {
    if (strlen($str) <= $bytes) return $str;
    return substr($str, 0, $bytes) . '...';
}
echo truncate('Длинный текст', 10);
Длинный т...
Сравнение производительности
Пример php
$str = str_repeat('a', 1000000);
$start = microtime(true);
strlen($str);
$time = microtime(true) - $start;
echo 'Время: ' . $time . ' сек';
Время: 4.0E-6 сек
Работа с бинарными данными
Пример php
$data = file_get_contents('image.jpg');
echo 'Размер файла в байтах: ' . strlen($data);
Размер файла в байтах: 24578
Подсчет слов по длине
Пример php
$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 - байты.

PHP strlen function comments

En
Strlen Get string length