Usando Php para retirar tags, inclusive script e style de Html

Um tempo atrás postei um modo de 'tirar' tags Html com PHP, porém, um detalhe é que retirava as tags mas o conteúdo de script e style não eram retirados, foi então que resolvi o problema usando um modo de mudar caracteres com PHP para depois poder apagar ele.

Retirar as tags Html, transformar e apagar os scripts e styles


<?php

// String com código e tags HTML
$texto = '<b>Lorem Ipsum</b> <i>is</i> simply <a href="//meuphpbasico.blogspot.com/">dummy text</a> of the tin <script src="//www.blogger.com/static/v1/jsbin/2290467252-comment_from_post_iframe.js"></script> <script>window.___gcfg= {"lang":"pt_PT"};</script> <style type="text/css">html body #uds-searchControl{background:red;text-aling:left;text-transform:uppercase;text-transform:uppercase}</style>';

$TrocaCaractere = array('<script' => '<!-- <script' , '/script>' => '/script> -->' , '<style' => '<!-- <style' , '/style>' => '/style> -->');
$textoB=strTr($texto, $TrocaCaractere);

// teria resultado no html: <b>Lorem Ipsum</b> <i>is</i> simply <a href="//meuphpbasico.blogspot.com/">dummy text</a> of the tin <!-- <script src="//www.blogger.com/static/v1/jsbin/2290467252-comment_from_post_iframe.js"></script> --> <!-- <script>window.___gcfg= {"lang":"pt_PT"};</script> --> <!-- <style type="text/css">html body #uds-searchControl{background:red;text-aling:left;text-transform:uppercase;text-transform:uppercase}</style> -->


// String filtra todo código e retira tags e 'anotações' do HTML
$TextoLimpo = strip_tags($textoB);


echo $TextoLimpo;
// Resultaria: Lorem Ipsum is simply dummy text of the tin
?>



A parte $TrocaCaractere mudaria alguns caracteres das tags de 'inicio e fim' dos scrpts e styles de maneira que eles passariam a ser anotações ocultas no Html, e depois, o strip_tags apagaria as anotações do mesmo modo que faz com as tags.

Caso eu não usasse essa gambiarra onde fiz uma $TrocaCaractere aí o meu resultado, tanto no html quanto a exibição, seria a seguinte bagunça:

Lorem Ipsum is simply dummy text of the tin window.___gcfg= {"lang":"pt_PT"}; html body #uds-searchControl{background:red;text-aling:left;text-transform:uppercase;text-transform:uppercase}

As tags <script> e <style> seriam removidas, mas, o 'conteúdo' delas não, pois, para o 'strip_tags' ele é um texto comum como se fosse ter sido escrito para ser visto pelas pessoas, e não como parte do Html ou 'tags' dele.

Uma dica final, sobre otimização de Html para redução de bytes e aumentar a velocidade de carregamento de páginas, por mais que seja mínima redução, mas se um site ou blog tem muitos, os scripts não necessitam mais do uso de type="text/javascript", tanto para linkar um arquivo externo quanto os javscripts da página Html, também, links externos, linkar ou inserção de objetos como imagens e vídeos, formulários, a Url não precisa mais usar o http:, a menos que vá linkar um https, mas é bom ter um certo cuidado e, existem exceções, como no caso das canonicais e alguns tipos de dados estruturado ou meta tags.

Sem comentários:

Enviar um comentário