{"id":3286,"date":"2015-06-23T10:15:43","date_gmt":"2015-06-23T13:15:43","guid":{"rendered":"http:\/\/blog.dialhost.com.br\/?p=3286"},"modified":"2019-05-10T15:41:06","modified_gmt":"2019-05-10T18:41:06","slug":"count_chars-tratamento-de-strings-com-php","status":"publish","type":"post","link":"https:\/\/www.dialhost.com.br\/blog\/count_chars-tratamento-de-strings-com-php\/","title":{"rendered":"count_chars &#8211; Tratamento de strings com PHP"},"content":{"rendered":"\n<p>Estou de volta com o 4\u00aa post sobre tratamento de strings, e para esta postagem estudei um pouco sobre o count_chars. A fun\u00e7\u00e3o basicamente faz a contagem das ocorr\u00eancias dos caracteres de uma string. Assim, \u00e9 poss\u00edvel avaliar quantas vezes um determinado caractere repete dentro desta string.<\/p>\n\n\n\n<p>A fun\u00e7\u00e3o&nbsp;possui 4 modos de busca&nbsp;que s\u00e3o passados por par\u00e2metros. Abaixo vou explicar um pouco de cada um destes modos.<\/p>\n\n\n\n<div id=\"toc_container\" class=\"have_bullets\"><p class=\"toc_title\">T&oacute;picos<\/p><ul class=\"toc_list\"><li><a href=\"#count-chars-na-pratica\">count_chars na pr\u00e1tica<\/a><ul><li><a href=\"#count-chars-no-modo-0\">count_chars no modo 0<\/a><\/li><li><a href=\"#modo-1\">Modo 1<\/a><\/li><li><a href=\"#modo-2\">Modo 2<\/a><\/li><li><a href=\"#modo-3\">Modo 3<\/a><\/li><li><a href=\"#modo-4\">Modo 4<\/a><\/li><\/ul><\/li><\/ul><\/div>\n<h2><span id=\"count-chars-na-pratica\">count_chars na pr\u00e1tica<\/span><\/h2>\n\n\n\n<p>Como a teoria desta fun\u00e7\u00e3o \u00e9 relativamente simples n\u00e3o vamos nos prolongar e colocar a m\u00e3o na massa com um exemplo bem simples usando este comando.<\/p>\n\n\n\n<h3><span id=\"count-chars-no-modo-0\">count_chars no modo 0<\/span><\/h3>\n\n\n\n<p>Ao utilizar a fun\u00e7\u00e3o no modo 0 &#8211; count_chars($text_print,<strong>0<\/strong>) &#8211; O comando retornar\u00e1 um array com os c\u00f3digos ASCII de todos os caracteres ASCII em um array e mostrar\u00e1 a ocorr\u00eancia de cada um deles, mesmo os que n\u00e3o tiveram ocorr\u00eancia.<\/p>\n\n\n\n<p>Abaixo fiz um teste com a frase &#8220;DialHost &#8211; Desenvolvendo um exemplo com count_chars&#8221;.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush: php; gutter: true\">&lt;?php \n    $text_print = 'DialHost - Desenvolvendo um exemplo com count_chars';\n    $str_md0 = count_chars($text_print,0);\n    echo '&lt;h2&gt; String de exemplo: '.$text_print.'&lt;\/h2&gt;';\n    echo '&lt;hr&gt;';\n    echo '&lt;h2&gt; Imprimindo todas as ocorrencias de todos os tipos de caracteres dentro da String:&lt;\/h2&gt;';\n    echo '&lt;p&gt;'; \n    foreach ($str_md0 as $key=&gt;$value){echo utf8_encode(chr($key)). ': ' . $value . ' vezes'.'&lt;br&gt;'; };\n    echo '&lt;\/p&gt;';\n?&gt;<\/pre>\n\n\n\n<p>Defini a vari\u00e1vel $text_print para colocar a frase que eu gostaria de analisar e ent\u00e3o coloquei o resultado do count_chars dentro da vari\u00e1vel <strong>$str_md0<\/strong>. Isto porque ele me retorna um array e eu terei que trat\u00e1-lo para ter a impress\u00e3o correta das recorr\u00eancias dos caracteres. Agora que j\u00e1 temos todos os caracteres dentro do array \u00e9 s\u00f3 varrer este array e ir imprimindo os respectivos caracteres e suas ocorr\u00eancias na string.<\/p>\n\n\n\n<p>Neste c\u00f3digo tive que usar o <a title=\"utf8_decode e utf8_encode tratando com codifica\u00e7\u00e3o Unicode\" href=\"http:\/\/blog.dialhost.com.br\/tecnologia\/utf8_decode-e-utf8_encode-tratando-com-codificacao-unicode\/\" target=\"_blank\" rel=\"noopener noreferrer\">utf8_encode <\/a>e o comando chr. O primeiro para mostrar os caracteres especiais de forma correta e o segundo para identificar o caractere referente ao c\u00f3digo ASCII do array. Vale lembrar que o retorno deste comando \u00e9 enorme j\u00e1 que ele retorna tanto os caracteres que foram utilizados quanto os que n\u00e3o foram. <a href=\"http:\/\/blog.dialhost.com.br\/blog-sandbox\/count_chars.php#mod0\" target=\"_blank\" rel=\"noopener noreferrer\">Confiram o resultado neste link<\/a>.<\/p>\n\n\n\n<h3><span id=\"modo-1\">Modo 1<\/span><\/h3>\n\n\n\n<p>O modo 1 &#8211;&nbsp;count_chars($text_print,<strong>1<\/strong>) &#8211; j\u00e1 possui um filtro sobre as ocorr\u00eancias da string. Ele avalia a string e retorna um array de todos os caracteres ASCII que possuem pelo menos uma ocorr\u00eancia. Isto evita a lista gigantesca de caracteres que n\u00e3o est\u00e3o presentes na string passada. Abaixo est\u00e1 o mesmo exemplo que fiz no modo 0 s\u00f3 que agora utilizando o modo 1:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush: php; gutter: true\">&lt;?php \n    $text_print = 'DialHost - Desenvolvendo um exemplo com count_chars';\n    $str_md1 = count_chars($text_print,1);\n    echo '&lt;h2&gt; String de exemplo: '.$text_print.'&lt;\/h2&gt;';\n    echo '&lt;hr&gt;';\n    echo '&lt;a name=\"mod1\"&gt;&lt;h2&gt; Imprimindo todas as ocorrencias dos caracteres que existem na String:&lt;\/h2&gt;&lt;\/a&gt;';\n    echo '&lt;p&gt;'; \n    foreach ($str_md0 as $key=&gt;$value){echo utf8_encode(chr($key)). ': ' . $value . ' vezes'.'&lt;br&gt;'; };\n    echo '&lt;\/p&gt;';\n?&gt;<\/pre>\n\n\n\n<p>Em suma aqui est\u00e1 tudo igual ao item anterior, a diferen\u00e7a ser\u00e1 no <a href=\"http:\/\/blog.dialhost.com.br\/blog-sandbox\/count_chars.php#mod1\" target=\"_blank\" rel=\"noopener noreferrer\">restultado que voc\u00eas podem conferir neste link<\/a><\/p>\n\n\n\n<h3><span id=\"modo-2\">Modo 2<\/span><\/h3>\n\n\n\n<p>Se o modo 1 mostra todas os caracteres que possu\u00edram pelo menos 1 ocorr\u00eancia, o modo 2 faz exatamente o contr\u00e1rio. Ele avalia a string e retorna um array de todos os caracteres ASCII que n\u00e3o possuem ocorr\u00eancias.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush: php; gutter: true\">&lt;?php \n    $text_print = 'DialHost - Desenvolvendo um exemplo com count_chars';\n    $str_md1 = count_chars($text_print,2);\n    echo '&lt;h2&gt; String de exemplo: '.$text_print.'&lt;\/h2&gt;';\n    echo '&lt;hr&gt;';\n    echo '&lt;a name=\"mod2\"&gt;&lt;h2&gt;Imprimindo todos os caracteres que n\u00e3o possuem ocorr\u00eancias na String:&lt;\/h2&gt;&lt;\/a&gt;';\n    echo '&lt;p&gt;'; \n    foreach ($str_md0 as $key=&gt;$value){echo utf8_encode(chr($key)). ': ' . $value . ' vezes'.'&lt;br&gt;'; };\n    echo '&lt;\/p&gt;';\n?&gt;<\/pre>\n\n\n\n<p>Novamente, a diferen\u00e7a ser\u00e1 no resultado <a href=\"http:\/\/blog.dialhost.com.br\/blog-sandbox\/count_chars.php#mod2\" target=\"_blank\" rel=\"noopener noreferrer\">que voc\u00eas podem conferir neste link<\/a><\/p>\n\n\n\n<h3><span id=\"modo-3\">Modo 3<\/span><\/h3>\n\n\n\n<p>O modo 3 \u00e9 mais simples que os demais. Ele apenas retornar\u00e1 todos os caracteres utilizados pela string. Desta vez por\u00e9m, n\u00e3o retornar\u00e1 quantas vezes ele se repetiu. O retorno ser\u00e1 uma simples string que no exemplo abaixo retornar\u00e1 isto:&nbsp;<span style=\"color: #000000;\">-DH_acdehilmnoprstuvx.<\/span><\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush: php; gutter: true\">&lt;?php \n$text_print = 'DialHost - Desenvolvendo um exemplo com count_chars';\necho '&lt;a name=\"mod3\"&gt;&lt;h2&gt; Imprimindo todos os caracteres utilizados na String:&lt;\/h2&gt;&lt;\/a&gt;';\necho '&lt;p&gt;'.utf8_encode(count_chars($text_print,3)).'&lt;\/p&gt;';\n?&gt;<\/pre>\n\n\n\n<p>Para conferir o resultado deste <a href=\"http:\/\/blog.dialhost.com.br\/blog-sandbox\/count_chars.php#mod3\" target=\"_blank\" rel=\"noopener noreferrer\">exemplo basta clicar neste link<\/a>.<\/p>\n\n\n\n<h3><span id=\"modo-4\">Modo 4<\/span><\/h3>\n\n\n\n<p>Acho que todos j\u00e1 est\u00e3o prevendo que este \u00faltimo modo n\u00e3o ser\u00e1 nenhuma novidade&#8230; sim ele tem o efeito contr\u00e1rio do modo 3 exibindo apenas os caracteres n\u00e3o utilizados na string.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted brush: php; gutter: true\">&amp;lt;?php \n$text_print = 'DialHost - Desenvolvendo um exemplo com count_chars';\necho '&amp;lt;a name=\"mod4\"&amp;gt;&amp;lt;h2&amp;gt; Imprimindo todos os caracteres n\u00e3o utilizados na String:&amp;lt;\/h2&amp;gt;&amp;lt;\/a&amp;gt;';\necho '&amp;lt;p&amp;gt;'.utf8_encode(count_chars($text_print,4)).'&amp;lt;\/p&amp;gt;';\n?&amp;gt;\n<\/pre>\n\n\n\n<p>Para conferir o resultado deste <a href=\"http:\/\/blog.dialhost.com.br\/blog-sandbox\/count_chars.php#mod3\" target=\"_blank\" rel=\"noopener noreferrer\">exemplo basta clicar neste link<\/a>.<br>\nBem, espero que este comando tenha sido \u00fatil para voc\u00eas e nos vemos na pr\u00f3xima. Quem quiser se aprofundar sobre exemplos de uso deste comando o<a title=\"Manual PHP\" href=\"http:\/\/php.net\/manual\/en\/function.count-chars.php\" target=\"_blank\" rel=\"noopener noreferrer\"> manual do PHP<\/a> pode ser muito \u00fatil<\/p>\n\n\n\n<div class=\"publicidade\">\n<div id=\"texto\">Tenha todo o desempenho para o seu site com a Hospedagem Cloud DialHost. Servidores em cloud prontos para receber sites em PHP. <a title=\"Hospedagem Cloud DialHost\" href=\"http:\/\/www.dialhost.com.br\/hospedagem-de-sites\/hospedagem-cloud?utm_source=DialHost&amp;utm_medium=Blog&amp;utm_campaign=Frases_Blog\" target=\"_blank\" rel=\"noopener noreferrer\">Saiba Mais<\/a>.<\/div>\n<\/div>\n\n\n\n<div class=\"clear\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\t\t\t\tA fun\u00e7\u00e3o basicamente faz a contagem das ocorr\u00eancias dos caracteres de uma string. Assim, \u00e9 poss\u00edvel avaliar quantas vezes um determinado caractere repete dentro desta string.\t\t\t\t<\/p>\n","protected":false},"author":1,"featured_media":9035,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3,12],"tags":[76,158,203],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v15.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>count_chars - Tratamento de strings com PHP - Blog DialHost<\/title>\n<meta name=\"description\" content=\"O count_chars faz a contagem das ocorr\u00eancias dos caracteres de uma string. Assim, \u00e9 poss\u00edvel avaliar as ocorr\u00eancias de um determinado caractere neta string.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dialhost.com.br\/blog\/count_chars-tratamento-de-strings-com-php\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"count_chars - Tratamento de strings com PHP - Blog DialHost\" \/>\n<meta property=\"og:description\" content=\"O count_chars faz a contagem das ocorr\u00eancias dos caracteres de uma string. Assim, \u00e9 poss\u00edvel avaliar as ocorr\u00eancias de um determinado caractere neta string.\" \/>\n<meta property=\"og:url\" content=\"\/blog\/count_chars-tratamento-de-strings-com-php\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog DialHost\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/www.facebook.com\/DialHost\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/DialHost\" \/>\n<meta property=\"article:published_time\" content=\"2015-06-23T13:15:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-05-10T18:41:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dialhost.com.br\/blog\/wp-content\/uploads\/2015\/06\/count_chars.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"700\" \/>\n\t<meta property=\"og:image:height\" content=\"260\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dialhost\" \/>\n<meta name=\"twitter:site\" content=\"@dialhost\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#organization\",\"name\":\"DialHost Internet\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/\",\"sameAs\":[\"http:\/\/www.facebook.com\/DialHost\",\"https:\/\/www.instagram.com\/dialhost_oficial\/\",\"https:\/\/www.linkedin.com\/company\/dialhost-internet\",\"https:\/\/www.youtube.com\/channel\/UCAiqiX8IiqTSfA8wQhpzgXQ\",\"https:\/\/twitter.com\/dialhost\"],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#logo\",\"inLanguage\":\"pt-BR\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/wp-content\/uploads\/2019\/03\/marca-dialhost.png\",\"width\":81,\"height\":81,\"caption\":\"DialHost Internet\"},\"image\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#website\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/\",\"name\":\"Blog DialHost\",\"description\":\"Os melhores conte\\u00fados sobre Desenvolvimento Web, Marketing e Neg\\u00f3cios\",\"publisher\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/www.dialhost.com.br\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/count_chars-tratamento-de-strings-com-php\/#primaryimage\",\"inLanguage\":\"pt-BR\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/wp-content\/uploads\/2015\/06\/count_chars.jpg\",\"width\":700,\"height\":260},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/count_chars-tratamento-de-strings-com-php\/#webpage\",\"url\":\"https:\/\/www.dialhost.com.br\/blog\/count_chars-tratamento-de-strings-com-php\/\",\"name\":\"count_chars - Tratamento de strings com PHP - Blog DialHost\",\"isPartOf\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/count_chars-tratamento-de-strings-com-php\/#primaryimage\"},\"datePublished\":\"2015-06-23T13:15:43+00:00\",\"dateModified\":\"2019-05-10T18:41:06+00:00\",\"description\":\"O count_chars faz a contagem das ocorr\\u00eancias dos caracteres de uma string. Assim, \\u00e9 poss\\u00edvel avaliar as ocorr\\u00eancias de um determinado caractere neta string.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/count_chars-tratamento-de-strings-com-php\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dialhost.com.br\/blog\/count_chars-tratamento-de-strings-com-php\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/count_chars-tratamento-de-strings-com-php\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"\/blog\/\",\"url\":\"\/blog\/\",\"name\":\"In\\u00edcio\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"\/blog\/count_chars-tratamento-de-strings-com-php\/\",\"url\":\"\/blog\/count_chars-tratamento-de-strings-com-php\/\",\"name\":\"count_chars &#8211; Tratamento de strings com PHP\"}}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/count_chars-tratamento-de-strings-com-php\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/count_chars-tratamento-de-strings-com-php\/#webpage\"},\"author\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#\/schema\/person\/a0b10cbe35449dea173a06d4664f9fcc\"},\"headline\":\"count_chars &#8211; Tratamento de strings com PHP\",\"datePublished\":\"2015-06-23T13:15:43+00:00\",\"dateModified\":\"2019-05-10T18:41:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/count_chars-tratamento-de-strings-com-php\/#webpage\"},\"publisher\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/count_chars-tratamento-de-strings-com-php\/#primaryimage\"},\"keywords\":\"desenvolvimento,noticias,tecnologia\",\"articleSection\":\"Dicas e Not\\u00edcias,Tecnologias\",\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#\/schema\/person\/a0b10cbe35449dea173a06d4664f9fcc\",\"name\":\"DialHost Internet\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.dialhost.com.br\/blog\/#personlogo\",\"inLanguage\":\"pt-BR\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/05feec2f99aef1c42b09aeaa637ee66f?s=96&r=g\",\"caption\":\"DialHost Internet\"},\"description\":\"H\\u00e1 mais de 18 anos proporcionando um servi\\u00e7o de hospedagem de sites voltado 100% na Experi\\u00eancia e Sucesso do Cliente, prezando a qualidade, transpar\\u00eancia e seguran\\u00e7a.\",\"sameAs\":[\"https:\/\/www.facebook.com\/DialHost\",\"https:\/\/www.instagram.com\/dialhost_oficial\/\",\"https:\/\/www.linkedin.com\/company\/dialhost-internet\",\"https:\/\/twitter.com\/dialhost\",\"https:\/\/www.youtube.com\/channel\/UCAiqiX8IiqTSfA8wQhpzgXQ\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/posts\/3286"}],"collection":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/comments?post=3286"}],"version-history":[{"count":0,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/posts\/3286\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/media\/9035"}],"wp:attachment":[{"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/media?parent=3286"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/categories?post=3286"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dialhost.com.br\/blog\/wp-json\/wp\/v2\/tags?post=3286"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}