Reducir ficheros Javascript y CSS con PHP

0 - , , , - 27/11/2008 07:14:00

Un poco en la línea de lo que hacen jsmin-php o minify, este script en Reinhold Weber aprovecha la posibilidad de lectura/volcado de archivos con php y el uso de expresiones regulares para convertir varios archivos CSS en uno sólo y servirlo sin comentarios ni saltos de línea o espacios innecesarios.

<?php
  header('Content-type: text/css');
  ob_start("compress");
 
 function compress($buffer) {
    /* remove comments */
    $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
    /* remove tabs, spaces, newlines, etc. */
    $buffer = str_replace(array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', $buffer);
    return $buffer;
}
  

  /* your css files */
  include('master.css');
  include('typography.css');
  include('grid.css');
  include('print.css');
  include('handheld.css');

ob_end_flush();
?>

Siguiendo el mismo procedimiento se podrían comprimir todos los archivos .js en uno sólo. Habría que cambiar el Content-type:

Header("content-type: application/x-javascript");

Con estas prácticas conseguimos por un lado reducir el tamaño de los ficheros que el cliente descargará, lo que significa menos ancho de banda consumido, y por otro lado reducimos el numero de peticiones HTTP, lo que significa una mayor velocidad en la carga de la web.

Deja tu comentario

  • El comentario debe estar relacionado con el contenido de la entrada.
  • Comentarios ofensivos, con spam o con lenguaje inapropiado serán eliminados.

captcha