Comprimere i CSS con PHP
30/06/2011Nell'elaborazione di un layout spesso i CSS finiscono per esser molto più grandi del necessario a causa delle parti commentate, delle note inserite, degli spazi adoperati per 'visuliazzare' più facilmente la struttura del foglio di stile.
Si trovano moltissimi compressori on line a cui sottoporre i nostri CSS per ottenerne la versione compattata degli stessi, ma così facendo ci 'perdiamo' la preziosa parte dei commenti utili in previsione di reinterventi...
Io suggerisco l'utilizzo di PHP per includere nel nostro documento HTML un unico CSS compattato.
Lo script è semplicissimo, lo riporto:
style type="text/css"
?php
ob_start("comprimi");
function comprimi($buf) {
/* rimuove i commenti */
$buf = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buf);
/* rimuove tabulazioni, spazi, a capo, etc. */
$buf = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', $buf);
return $buf;
}
/* qui includiamo i diversi css */
include 'css/ie.css';
include 'css/ie6.css';
include 'css/jquery.css';
include 'css/lightbox.css';
include 'css/styles.css';
ob_end_flush();
?
/style
In questo modo avremo solo 1 http request e un solo css compresso privo di tutto ciò che non serve!
Se vogliamo migliorare ancora, il codice lo scriveremo in un php esterno in modo da poter fare un include per tutti i documenti che si appoggiano sui nostri CSS, e se dobbiamo includere o escludere altri CSS ci basterà modificare il php esterno.