Signalwerk - Web-Code-Library

HTML, JS und CSS mittels PHP gzip-komprimieren

Die Funktion ob_start('ob_gzhandler') prüft, ob der Browser gzip-komprimierte Daten empfangen und dekomprimieren kann und komprimiert die nachfolgende HTML-Ausgabe entsprechend. Darauf folgt die Funktion gzip_js_css(), die JS- und CSS-Dateien auf dem Server komprimiert.

ob_gzhandler() setzt Zlib auf dem Server voraus.

ob_start('ob_gzhandler');
gzip_js_css();


function gzip_js_css() {
$files = glob('{css/*.css,js/*.js}',GLOB_BRACE);
foreach($files as $file) {
$gz = $file.'.gz';
file_put_contents($gz,gzencode(file_get_contents($file),9));
}
}


Rewrite Engine

Eine .htaccess-Datei leitet den Browser nach Möglichkeit auf die komprimierten JS- und CSS-Dateien um:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:Accept-Encoding} .*gzip.*
RewriteRule ^js/(.*).js$ /js/$1.js.gz [L]
RewriteRule ^css/(.*).css$ /css/$1.css.gz [L]
AddEncoding x-gzip text.gz

Zurück zur Web-Code-Lib