Salve, salve, galerinha da MX Studio. Venho vos escrever após um certo período de recesso…
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!
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?
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!
Não tem muita coisa o que concluir hoje, então serei breve…
xDDD
Aceito sugestões sempre, beleza?
Um forte abraço a todos e fiquem com Deus!
Parabéns cara, a função é redonda! =)
Me ajudou bastante aqui.
Abraço!
Desculpe a minha ignorância, mas como eu uso isso?
obs: eu ainda sou um ‘noob’ em php. XD