A função basicamente faz a contagem das ocorrências dos caracteres de uma string. Assim, é possível avaliar quantas vezes um determinado caractere repete dentro desta string.

Estou de volta com o 4ª post sobre tratamento de strings, e para esta postagem estudei um pouco sobre o count_chars. A função basicamente faz a contagem das ocorrências dos caracteres de uma string. Assim, é possível avaliar quantas vezes um determinado caractere repete dentro desta string.

A função possui 4 modos de busca que são passados por parâmetros. Abaixo vou explicar um pouco de cada um destes modos.

count_chars na prática

Como a teoria desta função é relativamente simples não vamos nos prolongar e colocar a mão na massa com um exemplo bem simples usando este comando.

count_chars no modo 0

Ao utilizar a função no modo 0 – count_chars($text_print,0) – O comando retornará um array com os códigos ASCII de todos os caracteres ASCII em um array e mostrará a ocorrência de cada um deles, mesmo os que não tiveram ocorrência.

Abaixo fiz um teste com a frase “DialHost – Desenvolvendo um exemplo com count_chars”.

<?php 
    $text_print = 'DialHost - Desenvolvendo um exemplo com count_chars';
    $str_md0 = count_chars($text_print,0);
    echo '<h2> String de exemplo: '.$text_print.'</h2>';
    echo '<hr>';
    echo '<h2> Imprimindo todas as ocorrencias de todos os tipos de caracteres dentro da String:</h2>';
    echo '<p>'; 
    foreach ($str_md0 as $key=>$value){echo utf8_encode(chr($key)). ': ' . $value . ' vezes'.'<br>'; };
    echo '</p>';
?>

Defini a variável $text_print para colocar a frase que eu gostaria de analisar e então coloquei o resultado do count_chars dentro da variável $str_md0. Isto porque ele me retorna um array e eu terei que tratá-lo para ter a impressão correta das recorrências dos caracteres. Agora que já temos todos os caracteres dentro do array é só varrer este array e ir imprimindo os respectivos caracteres e suas ocorrências na string.

Neste código tive que usar o utf8_encode e o comando chr. O primeiro para mostrar os caracteres especiais de forma correta e o segundo para identificar o caractere referente ao código ASCII do array. Vale lembrar que o retorno deste comando é enorme já que ele retorna tanto os caracteres que foram utilizados quanto os que não foram. Confiram o resultado neste link.

Modo 1

O modo 1 – count_chars($text_print,1) – já possui um filtro sobre as ocorrências da string. Ele avalia a string e retorna um array de todos os caracteres ASCII que possuem pelo menos uma ocorrência. Isto evita a lista gigantesca de caracteres que não estão presentes na string passada. Abaixo está o mesmo exemplo que fiz no modo 0 só que agora utilizando o modo 1:

<?php 
    $text_print = 'DialHost - Desenvolvendo um exemplo com count_chars';
    $str_md1 = count_chars($text_print,1);
    echo '<h2> String de exemplo: '.$text_print.'</h2>';
    echo '<hr>';
    echo '<a name="mod1"><h2> Imprimindo todas as ocorrencias dos caracteres que existem na String:</h2></a>';
    echo '<p>'; 
    foreach ($str_md0 as $key=>$value){echo utf8_encode(chr($key)). ': ' . $value . ' vezes'.'<br>'; };
    echo '</p>';
?>

Em suma aqui está tudo igual ao item anterior, a diferença será no restultado que vocês podem conferir neste link

Modo 2

Se o modo 1 mostra todas os caracteres que possuíram pelo menos 1 ocorrência, o modo 2 faz exatamente o contrário. Ele avalia a string e retorna um array de todos os caracteres ASCII que não possuem ocorrências.

<?php 
    $text_print = 'DialHost - Desenvolvendo um exemplo com count_chars';
    $str_md1 = count_chars($text_print,2);
    echo '<h2> String de exemplo: '.$text_print.'</h2>';
    echo '<hr>';
    echo '<a name="mod2"><h2>Imprimindo todos os caracteres que não possuem ocorrências na String:</h2></a>';
    echo '<p>'; 
    foreach ($str_md0 as $key=>$value){echo utf8_encode(chr($key)). ': ' . $value . ' vezes'.'<br>'; };
    echo '</p>';
?>

Novamente, a diferença será no resultado que vocês podem conferir neste link

Modo 3

O modo 3 é mais simples que os demais. Ele apenas retornará todos os caracteres utilizados pela string. Desta vez porém, não retornará quantas vezes ele se repetiu. O retorno será uma simples string que no exemplo abaixo retornará isto: -DH_acdehilmnoprstuvx.

<?php 
$text_print = 'DialHost - Desenvolvendo um exemplo com count_chars';
echo '<a name="mod3"><h2> Imprimindo todos os caracteres utilizados na String:</h2></a>';
echo '<p>'.utf8_encode(count_chars($text_print,3)).'</p>';
?>

Para conferir o resultado deste exemplo basta clicar neste link.

Modo 4

Acho que todos já estão prevendo que este último modo não será nenhuma novidade… sim ele tem o efeito contrário do modo 3 exibindo apenas os caracteres não utilizados na string.

&lt;?php 
$text_print = 'DialHost - Desenvolvendo um exemplo com count_chars';
echo '&lt;a name="mod4"&gt;&lt;h2&gt; Imprimindo todos os caracteres não utilizados na String:&lt;/h2&gt;&lt;/a&gt;';
echo '&lt;p&gt;'.utf8_encode(count_chars($text_print,4)).'&lt;/p&gt;';
?&gt;

Para conferir o resultado deste exemplo basta clicar neste link.
Bem, espero que este comando tenha sido útil para vocês e nos vemos na próxima. Quem quiser se aprofundar sobre exemplos de uso deste comando o manual do PHP pode ser muito útil

Tenha todo o desempenho para o seu site com a Hospedagem Cloud DialHost. Servidores em cloud prontos para receber sites em PHP. Saiba Mais.

Compartilhe:

Sobre o autor:

Sobre o autor:

Posts Relacionados:

Novidades do Blog

Deixe seu e-mail abaixo para passar a receber promoções e novidades do nosso Blog.