Fonction mb_strlen

La fonction mb_strlen renvoie le nombre de caractères dans une chaîne, en travaillant correctement avec les encodages multioctets (par exemple, UTF-8). Contrairement à strlen, elle compte correctement les caractères occupant plusieurs octets. Elle prend la chaîne comme premier paramètre et l'encodage comme second (optionnel).

Syntaxe

phpmb_strlen(string, [encoding]);

Exemple

Compter la longueur d'une chaîne en UTF-8 :

php<?php
  $res = mb_strlen('Привет', 'UTF-8');
  echo $res;
?>

Résultat de l'exécution du code :

php6

Exemple

Comparaison avec strlen pour le cyrillique :

php<?php
  $str = 'тест';
  echo 'strlen: ' . strlen($str) . '<br>';
  echo 'mb_strlen: ' . mb_strlen($str, 'UTF-8');
?>

Résultat de l'exécution du code :

phpstrlen: 8
mb_strlen: 4

Exemple

Utilisation sans spécifier l'encodage (l'encodage est tiré de mb_internal_encoding) :

php<?php
  echo mb_strlen('abcde');
?>

Résultat de l'exécution du code :

php5

Voir aussi

  • la fonction strlen,
    qui renvoie la longueur d'une chaîne en octets
  • la fonction mb_substr,
    qui extrait une sous-chaîne en tenant compte de l'encodage