PHP: Problemas na contagem de caracteres de uma string

Entrando com mais um post.

Dica rápida de como contar a quantidade de caracteres de uma string.

Para isso, devemos utilizar a função strlen().

Exemplo:

<?php
  // texto com acento
  $txt    = "Contando o número de caracteres desse texto.";
  // texto sem acento
  $txt1   = "Contando o numero de caracteres desse texto.";
  // total de caracteres
  $tam    = strlen($txt);
  $tam1   = strlen($txt1);
  // resultado
  echo "Texto com acento - Total: ".$tam."<br/>"; // 45
  echo "Texto sem acento - Total: ".$tam1."<br/>"; // 44
?>

No exemplo acima percebe-se um pequeno problema na contagem dos caracteres. O problema ocorre quando o texto possui acentuação.

A função strlen() funciona bem para iso-8859-1 (texto sem acentuação).

Para resolver este problema, devemos utilizar a função mb_strlen() que permite definir um parâmetro chamado encoding.

Como a maior parte dos sites utiliza encoding utf-8, se faz necessário trocar strlen() por mb-strlen();

Exemplo:

<pre lang="php">
<?php
  // texto com acento
  $txt    = "Contando o número de caracteres desse texto.";
  // texto sem acento
  $txt1   = "Contando o numero de caracteres desse texto.";
  // total de caracteres
  $tam    = mb_strlen($txt, 'utf8');
  $tam1   = mb_strlen($txt1, 'utf8');
  // resultado
  echo "Texto com acento - Total: ".$tam."<br/>"; // 44
  echo "Texto sem acento - Total: ".$tam1."<br/>"; // 44
?>

Um comentário em “PHP: Problemas na contagem de caracteres de uma string

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *