Comunidad de diseño web y desarrollo en internet online

Comprimir el código de una web con PHP

Obsesionado con reducir el peso del proyecto XHTML en el que estoy trabajando, se me ocurrió que una solución era eliminando los (muchos) espacios en blanco y variados comentarios que cuidadosamente dejé para mantener mi código estético y comprensible al momento de tener que revisarlo y editarlo nuevamente.

Por un momento o dos, estuve a punto de hacerlo manualmente pero afortunadamente la luz llego a mi, encontré que es posible hacerlo, utilizando PHP.

Así fue como llegué al Blog de David Walsh, en el que explica cómo es posible comprimir el tamaño de una página XHTML gracias al uso de búferes de salida, código que por cierto, tiene desperfectos, como bien señalaron en uno de sus comentarios. Es cuestión de que lo pruebes y mires desangrarse tu trabajo.

Por ello ajusté un poco el código antes citado, dando el siguiente resultado. La explicación está comentada:

Código :

<?php
   /*  Primero habilitamos el uso de búferes de salida, los cuales 
        almacenaran toda la Salida en un búfer interno  */
   ob_start('compress_page');
?>

<!--   Es aquí donde va tu XHTML fuente   -->

<?php  
   /*  Una vez que el búfer almaceno nuestro contenido,
    utilizamos "ob_end_flush" para usarlo y deshabilitar el búfer  */
   ob_end_flush();
   /*  Este es el SNC de este código, el cual se encarga de 
   eliminar todos los espacios en blanco entre los Tags  */  
   function compress_page($buffer)
   {
      $search = array('/\>[^\S ]+/s','/[^\S ]+\</s','/(\s)+/s');
      $replace = array('>','<','\\1');
      return preg_replace($search, $replace, $buffer);
   }
?>
Puedes ver un ejemplo de su uso observando el código fuente en mi pagina, y que, como verás, es un resultado similar al que emplea Google en sus apps.

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate