Função mb_strlen

A função mb_strlen retorna o número de caracteres em uma string, funcionando corretamente com codificações multibyte (por exemplo, UTF-8). Diferente de strlen, ela conta corretamente os caracteres que ocupam vários bytes. O primeiro parâmetro é a string, o segundo (opcional) - a codificação.

Sintaxe

phpmb_strlen(string, [encoding]);

Exemplo

Contando o comprimento de uma string em UTF-8:

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

Resultado da execução do código:

php6

Exemplo

Comparação com strlen para cirílico:

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

Resultado da execução do código:

phpstrlen: 8
mb_strlen: 4

Exemplo

Uso sem especificar a codificação (a codificação é obtida de mb_internal_encoding):

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

Resultado da execução do código:

php5

Veja também

  • a função strlen,
    que retorna o comprimento da string em bytes
  • a função mb_substr,
    que extrai uma substring levando em conta a codificação