PHP: Eliminar comentarios HTML (tags)
En muchos casos nos interesa limpiar los comentarios del html que ingresa el usuario o incluso también queremos hacerlo antes de mostrar el HTML final al usuario para ahorrar unos cuantos bytes o simplemente para que no lean los comentarios que hacemos en el codigo.
Para hacerlo mediante PHP, vamos a utilizar la función preg_replace con Regex.
El html que vamos a limpiar se ve así:
<!-- Titulo h1 -->
<h1 >Vicolinker</h1>
<!-- texto P con la descripccion -->
<p style="color: #2e6c80;" >Vamos a eliminar los comentarios html usando:<br/> PHP y Regex</p>
Método 1:
Regexl:
/<!--(.|s)*?-->/
Codigo PHP:
<?php
$html = '<!-- Titulo h1 -->
<h1 >Vicolinker</h1>
<!-- texto P con la descripccion -->
<p style="color: #2e6c80;" >Vamos a eliminar los comentarios html usando:<br/> PHP y Regex</p>';
echo preg_replace('/<!--(.|s)*?-->/', '', $html);
?>
//Output:
<h1 >Vicolinker</h1>
<p style="color: #2e6c80;" >Vamos a eliminar los comentarios html usando:<br/> PHP y Regex</p>
Método 2:
En este método vamos a eliminar también los comentarios multilinea y ademas los comentarios condicionales de Internet Explorer.
Nota: No es muy recomendable el caso usemos los condicionales para importar/utilizar un Javascript.
Regex:
/<!--(.*)-->/Uis
/(?=<!--)([\s\S]*?-->)/
/(<!--[\s\S]*?-->)/
/( )*<!--((.*)|[^<]*|[^!]*|[^-]*|[^>]*)-->\n*/g
<?php
$html = '<!--
Titulo h1
multilinea
-->
<h1 >Vicolinker</h1>
<!--[if IE 7 ]>
<p>Solo para Internet Explorer 7</p>
<![endif]-->
<!-- texto P con la descripccion -->
<p style="color: #2e6c80;" >Vamos a eliminar los comentarios html usando:<br/> PHP y Regex</p>';
echo preg_replace('/<!--(.*)-->/Uis', '', $html);
?>
//Output:
<h1 >Vicolinker</h1>
<p style="color: #2e6c80;" >Vamos a eliminar los comentarios html usando:<br/> PHP y Regex</p>
Términos de búsqueda:
- php remove html comment tags
- php remove html comments
- php regex remove html comments
- php strip html comments tags
- php remove ie comment tags
- php remove Internet Explorer comment tags