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 ?> |
show, Deus te abençoe