Retirar Tags html no PHP com Strip_tags

Se você possui um texto que contém tags html e quer removê-las, pode fazer isso facilmente utilizando a função strip_tags do PHP. Veja um exemplo prático abaixo:

1
2
3
4
5
$texto = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8' /></head><body><div id='post'><h1>Titulo do Post</h1><p>Este é o conteúdo do post<br>O Conteúdo continua...</p></div></body></html>";
 
$texto = strip_tags($texto);
 
echo $texto;
$texto = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8' /></head><body><div id='post'><h1>Titulo do Post</h1><p>Este é o conteúdo do post<br>O Conteúdo continua...</p></div></body></html>";

$texto = strip_tags($texto);

echo $texto;

O problema aqui é que todas as tags serão removidas, resultando em um texto todo emendado e sem formatação nenhuma. Veja o resultado “Titulo do PostEste é o conteúdo do postO Conteúdo continua…”

Neste caso, não dá pra definir o que é título, o que é um parágrafo e nem a quebra de linha permaneceu.

Retirar Tags html no PHP com Strip_tags

Para resolver isso, a função strip_tags permite você passar um segundo parâmetro para ela. Este segundo parâmetro deve conter exatamente as tags permitidas. Uma vez que você informa as tags permitidas, elas não serão retiradas do texto. Veja o exemplo abaixo:

1
2
3
4
5
$texto = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8' /></head><body><div id='post'><h1>Titulo do Post</h1><p>Este é o conteúdo do post<br>O Conteúdo continua...</p></div></body></html>";
 
$texto = strip_tags($texto,'<div><h1><h2><br><p>');
 
echo $texto;
$texto = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8' /></head><body><div id='post'><h1>Titulo do Post</h1><p>Este é o conteúdo do post<br>O Conteúdo continua...</p></div></body></html>";

$texto = strip_tags($texto,'<div><h1><h2><br><p>');

echo $texto;

Agora todas as tags div, h1, h2, br, e p (parágrafo) serão desconsideradas pela função strip_tags e permanecerão no texto. As demais tags não informadas no segundo parâmetro, como html, head, meta, body, etc., serão excluídas normalmente. O resultado imprimido no código acima foi o seguinte:

1
<div id='post'><h1>Titulo do Post</h1><p>Este é o conteúdo do post<br>O Conteúdo continua...</p></div>
<div id='post'><h1>Titulo do Post</h1><p>Este é o conteúdo do post<br>O Conteúdo continua...</p></div>

Palavra Final

Por fim, você pode adicionar ou remover tags do segundo parâmetro, conforme precisar para satisfazer tua necessidade. Por exemplo, se você quiser retirar todos os divs do texto, retire o <div> do filtro. Por outro lado, se quiser deixar a tag body, insira-a no segundo parâmetro da função strip_tags e pronto.

Deste jeito, com a função strip_tags, fica fácil remover tags específicas de textos html.

Leave a Reply