Criando um htmlentities que ignora tags

Prefácio

Salve, salve, galerinha. Venho vos escrever após um certo período de recesso, onde estive envolvido com MUITOS projetos, um deles inclusive é o novo layout do PHPit, o qual estou preparando para o ano vindouro.

Sem mais delongas, vamos para o que interessa.
O intuito hoje é montar uma função semelhante ao htmlentities, mas que ignore as tags que existem no seu texto.

Bem bacana e bem simples de fazer! :)

Conceito

O primeiro passo é obter a tabela de conversão de caracteres. Com a get_html_translation_table, nós iremos passar a constante HTML_ENTITIES a fim de obter a tabela com todos os caracteres traduzidos pela função htmlentities.

Uma vez feito isso, vamos obter a tabela de conversão de caracteres referente a função htmlspecialchars, a qual traduz apenas caracteres que dizem respeito aos caracteres especiais utilizados por tags html. A constante agora é HTML_SPECIALCHARS.

Depois disso devemos computar a diferença entre uma array e outra, a fim de retirar os caracteres do html de dentro de todos os outros (que aqui tratam-se de letras acentuadas, basicamente).

Feito isso, finalmente usamos a strtr para traduzirmos os caracteres! :)

Vamos por isso em prática?

Mão na massa

Juntando tudo isso, teremos um código semelhante a este:

<?php

	function htmlwtags($str) {

		// Pega todos os caracteres que devem ser convertidos
		$caracteres = get_html_translation_table(HTML_ENTITIES);

		// Encontra a lista de caracteres que serão retirados da tabela
		$remover = get_html_translation_table(HTML_SPECIALCHARS);

		// Remove os caracteres que não deve ser convertidos (caracteres html)
		$caracteres = array_diff($caracteres, $remover);

		// Traduz tudo bonitinho! :)
		$str = strtr($str, $caracteres);

		// Êêêêêêê!!! o/
		return $str;

	}

?>

Função bem bonitinha e bem simples. Resultados garantidos! Qualquer bug, me mande um e-mail, por favor! :D

Conclusão

Não tem muita coisa o que concluir hoje, então serei breve…
Espero que esta seja a minha última coluna antes do novo layout…
xDDD

Aceito sugestões sempre, beleza?

Um forte abraço a todos e fiquem com Deus! :)

Esta entrada foi publicada em Dicas e marcada com a tag . Adicione o link permanente aos seus favoritos.

7 pessoas já comentaram! Tá esperando o quê?

  1.  
    Kuen disse:

    Ahhhh!!! eu vi tu criando isso!!! Do trabalho para o Blog!! hehehe!!! Boaa!!

    Flw!

    Utilizando Mozilla Firefox Mozilla Firefox 2.0.0.11 no Windows Windows XP
  2.  
    Xorna disse:

    Mazzá gurizão… show de bola cara… muito bom

    Utilizando Mozilla Firefox Mozilla Firefox 2.0.0.11 no Windows Windows Vista
  3.  
    Talita disse:

    Oie Rafa,

    Gosto mto dos seus artigos, um deles (sobre expressões regulares) adicionei no Via6, espero que mta gente possa ler, achei mto bom.

    Esse tbm é ótimo, parabéns.

    Seu blog já está add nos delicious, virou uma consulta hehe.

    Obrigada pelo apoio, e parabéns ;-)

    Utilizando Mozilla Firefox Mozilla Firefox 2.0.0.6 no Linux Linux
  4.  
    Leo disse:

    Saveee, rafa!! cara, teu site eh o melhor! meus parabéns cara! Dale pau mesmo! eheheh!

    abraçossss!!

    Utilizando Mozilla Firefox Mozilla Firefox 3.0b2 no Windows Windows XP
  5.  

    Feliz Natal para vc tb!

    Utilizando Mozilla Firefox Mozilla Firefox 2.0.0.11 no Windows Windows XP
  6.  
    Gisele disse:

    Ooops, Feliz Ano Novo agora!

    Hahauuha.

    Utilizando Mozilla Firefox Mozilla Firefox 2.0.0.11 no Windows Windows XP
  7.  
    Jefferson Rafael disse:

    Cara…

    Muito boa a sua função, era simplesmente o que eu estava procurando.

    Meus parabens..

    Utilizando Mozilla Firefox Mozilla Firefox 3.0.3 no Windows Windows XP

Deixe um Comentário

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">