View all posts

Guía para comprimir archivos CSS con PHP?

Traducción del artículo en inglés tomado de: http://www.catswhocode.com/blog/3-ways-to-compress-css-files-using-php

Cuando usted se encuentra desarrollando un diseño sofisticado, los archivos CSS rápidamente pueden volverse grandes y requerir de tiempo para cargar. En este artículo se han recopilado 3 formas interesantes para comprimir archivos CSS utilizando PHP.

El método de Paul Stamatiou

Para que usted pueda aplicar este método, primero debe renombrar todos sus archivos .css a .css.php

Además, asegúrese de importar los archivos en su html utilizando su nuevo nombre:

Cuando usted haya renombrado sus archivos css, edítelos y agregue la siguiente porción de código al inicio del archivo:

Seguidamente, agregue la siguiente línea al final del archivo y guárdelo:

 

 

Eso es todo. Este método es útil y eficiente.

El método Perishable Press

Básicamente, este método funciona igual que el de Paul Stamatiou, al renombrar sus archivos .css en .css.php (o solamente .php) y agregando esta pequeña porción de código al inicio de su archivo CSS:


ob_start (“ob_gzhandler”);

header (“content-type: text/css; charset: UTF-8″);

header (“cache-control: must-revalidate”);

$offset = 60 * 60;

$expire = “expires: ” . gmdate (“D, d M Y H:i:s”, time() + $offset) . ” GMT”;

header ($expire);

?>

Este método se recomienda más que el descrito por Paul Stamatiou debido a que usted no tendrá que editar tanto el inicio como el final del archivo CSS.

El método Reinhold Weber

Este método fue creado por el desarrollador alemán Reinhold Weber. Lo mínimo que se puede decir es que es el mejor de los 3 métodos de este artículo.

 

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(“rn”, “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();

?>

¿Por qué este método es el mejor? Porque es el único de los 3 métodos que no requiere renombrar sus archivos .css a .php ni modificarlos. Muy factible de utilizar en un sitio en producción. Adicionalmente, la expresión utilizada para comprimir los comentarios del archivo CSS es también muy buena.

Observaciones de InterGraphicDESIGNS:

A pesar del aprovechamiento que se le puede dar a estos métodos, tenemos que tomar en cuenta que los archivos css se comprimen cada vez que la página es cargada (con excepción de las páginas que habiliten algún caché), lo que podría provocar procesamiento extra del CPU en un sitio con mucho tráfico.

Algo que puede resultar de utilidad es elaborar un script en PHP que, usando cualquiera de estos 3 métodos, genere los archivos finales CSS comprimidos y éstos sean leídos directamente por las páginas para evitar que el servidor esté comprimiendo los archivos CSS cada vez que se cargan dichas páginas. Con esto conseguiríamos también “ofuscar” de alguna manera nuestros CSS haciendo un tanto difícil para el usuario en Internet leer los mismos.

Etiquetas: , , ,