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