14. 1. 2012

Minifikace CSS pomocí PHP

Pro minifikaci CSS existuje řada nástrojů (např. YUI Compressor), nejraději však používám klasické PHP:

$regex = array(
  "`^([\t\s]+)`ism" => '',
  "`([:;}{]{1})([\t\s]+)(\S)`ism" => '$1$3',
  "`(\S)([\t\s]+)([:;}{]{1})`ism" => '$1$3',
  "`\/\*(.+?)\*\/`ism" => "",
  "`([\n|\A|;]+)\s//(.+?)[\n\r]`ism" => "$1\n",
  "`(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+`ism" => "\n"
);

$css = preg_replace(array_keys($regex), $regex, file_get_contents(__DIR__ . '/style.css'));

file_put_contents(__DIR__ . '/style.min.css', $css);
#css, #php, #php-minifikace-css, #programovani