mb_strlen
funkcja
Zwraca liczbę ZNAKÓW w ciągu wielobajtowym (np. UTF-8). W odróżnieniu od strlen(), liczy znaki, nie bajty.
mb_strlen(string $string, ?string $encoding = null): int
mb_strlen liczy znaki zgodnie z kodowaniem wielobajtowym (najczęściej UTF-8). To kluczowa różnica względem strlen() — strlen zwraca liczbę bajtów, a w UTF-8 polskie litery zajmują po 2 bajty. Dla słowa 'Łódź' strlen zwróci 7, podczas gdy mb_strlen poprawnie zwróci 4.
<?php
declare(strict_types=1);
$s = 'Łódź';
echo mb_strlen($s, 'UTF-8'); // wynik: 4 (znaki)
echo strlen($s); // wynik: 7 (bajty w UTF-8)