Tentei utilizar somente o strip_tags() - nativo a partir do PHP 4.
Não foi o suficiente, os estilos e outros atributos continuavam por ali e estragavam a aparência do site.
Encontrei na página da função, no próprio manual(site) do PHP que fala sobre a strip_tags()-http://php.net/manual/pt_BR/function.strip-tags.php a resposta para o que eu estava precisando:
nauthiz693 at gmail dot com 12-Jun-2009 08:31
<?php function strip_tags_attributes($string,$allowtags=NULL,$allowattributes=NULL){
$string = strip_tags($string,$allowtags);
if (!is_null($allowattributes)) {
if(!is_array($allowattributes))
$allowattributes = explode(",",$allowattributes);
if(is_array($allowattributes))
$allowattributes = implode(")(?<!",$allowattributes);
if (strlen($allowattributes) > 0)
$allowattributes = "(?<!".$allowattributes.")";
$string = preg_replace_callback("/<[^>]*>/i",create_function(
'$matches',
'return preg_replace("/ [^ =]*'.$allowattributes.'=(\"[^\"]*\"|\'[^\']*\')/i", "", $matches[0]);'
),$string);
}
return $string; } ?>
Então criei um Helper para CodeIgniter chamado remove_html_helper.php com o código acima e depois foi só chamar no meu controlador antes de inserir no banco de dados.
Exemplo de utilização:
$descricao = $this->input->post('descricao');
$this->load->helper('remove_html_helper');
$descricao = strip_tags_attributes($descricao,'<h2><h3><h4><h5><h6><p><strong><a><ul><ol><li><b><i><br><span><div><table><tr><th><td><img>','href,rel,src');
$data['descricao'] = $descricao;
0 comentários:
Postar um comentário