grapheme_strlen
grapheme_strlen($string)
Renvoie le nombre de graphèmes, c’est-à-dire de caractères tels que les perçoit un lecteur. Une lettre avec un accent combiné (e + U+0301) ou un drapeau composé d’emoji font deux caractères pour mb_strlen(), mais un seul pour grapheme_strlen(). Utile pour les limites de longueur de texte que voit l’utilisateur.
Paramètres
- $string – un texte en UTF-8.
Exemples
echo strlen("Crème brûlée"); // 15
echo mb_strlen("Crème brûlée"); // 12
echo grapheme_strlen("Crème brûlée"); // 12
// une lettre composée de deux points de code
$e = "e\u{0301}";
echo mb_strlen($e) . " " . grapheme_strlen($e); // 2 1
Points d’attention
- Pour les limites dans la base de données (VARCHAR(100)), c’est le nombre de caractères tel que le compte la base qui décide, pas les graphèmes : vérifiez les deux.
- Un UTF-8 invalide renvoie false (et un avertissement).
Fonctions associées :
grapheme_substr()
mb_strlen()
strlen()
normalizer_normalize()