Como contar caracteres em uma string no PHP?
A contagem de caracteres é uma tarefa comum no PHP, usada para validações de formulários, manipulação de textos e restrições de entrada de dados. O PHP fornece funções específicas para essa finalidade, como strlen()
, mb_strlen()
e substr_count()
.
Contando caracteres com strlen()
A função strlen()
retorna o número de bytes de uma string, que normalmente equivale ao número de caracteres para textos sem acentos ou caracteres especiais:
<?php
$texto = "PHP é incrível!";
echo strlen($texto);
?>
Saída:
15
Contando caracteres corretamente com mb_strlen() (para UTF-8)
Se a string contiver caracteres acentuados, strlen()
pode retornar um valor incorreto. Para evitar isso, usamos mb_strlen()
:
<?php
$texto = "Olá, mundo!";
echo mb_strlen($texto, "UTF-8");
?>
Saída:
12
Aqui, mb_strlen()
conta corretamente os caracteres acentuados sem considerar múltiplos bytes.
Contando ocorrências de um caractere específico com substr_count()
Se quisermos contar quantas vezes um caractere específico aparece na string, usamos substr_count()
:
<?php
$frase = "banana";
echo substr_count($frase, "a");
?>
Saída:
3
Aqui, contamos quantas vezes a letra "a" aparece na palavra "banana".
Quando usar strlen(), mb_strlen() e substr_count() no PHP?
A contagem de caracteres no PHP é essencial para controle de entrada de dados, processamento de textos e validações em formulários. O uso de strlen()
funciona bem para strings simples, mas ao trabalhar com textos acentuados, mb_strlen()
é a melhor escolha, pois considera corretamente os caracteres multibyte.
Algumas aplicações:
- Validação de tamanho máximo de campos em formulários
- Contagem de caracteres em textos para relatórios
- Restrição de comprimento em nomes de usuários
- Verificação de frequência de caracteres específicos
Dicas para quem está começando
- Use
strlen()
para strings simples e sem caracteres acentuados. - Prefira
mb_strlen()
para contar caracteres corretamente em textos UTF-8. - Se precisar contar quantas vezes um caractere aparece na string, utilize
substr_count()
. - Lembre-se de verificar a codificação do texto para evitar resultados inesperados.
- Evite usar
strlen()
em strings com caracteres especiais se precisar de uma contagem exata.
Contribuições de Daniel Moreira