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 (¨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 ();
?>
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.