Столкнулся только что с задачей довольно интересной для меня. Ковыряясь в конфигурации CakePHP, наткнулся я на один интересный момент:
/** * Compress CSS output by removing comments, whitespace, repeating tags, etc. * This requires a/var/cache directory to be writable by the web server for caching. * and /vendors/csspp/csspp.php * * To use, prefix the CSS link URL with '/ccss/' instead of '/css/' or use HtmlHelper::css(). */ //Configure::write('Asset.filter.css', 'css.php');
Т.е. это значит, что должен существовать некоторый класс csspp, который содержит функцию компрессии css файлов путем удаления комментарием и лишних символов типа 'пробелы', 'табуляция' и т.п. Около часа поиска данного чуда человеческой мысли ни к чему не привели. Что же тогда оставалось мне делать? Существует 2 варианта: найти подходящий код и воспользоваться или написать всё самому. я выбрал второй вариант. Код класса csspp с удовольствием выкладываю для общего пользования.
<?php class csspp { function compress($data) { /* удаляем комментарии */ $data = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $data); /* удаляем лишние символы */ $data = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', $data); return $data; } }
И, естественно, исходник для скачивания