CSSTidy - эффективное сжатие CSS
Когда разработчики занимаются клиентской оптимизацией, то непременно встаёт вопрос о сжатии CSS файлов. Один из самых эффективных способов - это сжатие при помощи CSSTidy. Решение этой задачи сводится к сжатию строки, содержащей описание CSS стилей. Предлагаю Вашему вниманию PHP функцию, которая будет это делать.
Функция выглядит следующим образом:
function compressCSS($input) {
require('class.csstidy.php');
$css = new csstidy();
$css->set_cfg('case_properties', 1);
$css->set_cfg('merge_selectors', 2);
$css->set_cfg('optimise_shorthands', 1);
$css->set_cfg('remove_last_;',true);
$css->set_cfg('css_level', 'CSS2.1');
$css->load_template('highest_compression');
$result = $css->parse($input);
$output = $css->print->plain();
return $output;
}
Обратите внимание, что если класс CSSTidy будет располагается в другом месте, то нужно будет прописать полный путь к файлу, содержашему класс.
Пример использования:
$css = '
body {
font:0.8em Verdana;
background:#FFFFFF;
}
small {
font-size:0.7em;
}
fieldset#field_input {
float:left;
margin:0 0.5em 1em 0;
}
';
$output = compressCSS($css);
// Переменная $output будет содержать
// 'body{font:.8em Verdana;background:#FFF}small{font-size:.7em}fieldset#field_input {float:left;margin:0 .5em 1em 0}'
В заключении хотелось бы привести показатели эффективности сжатия некоторых CSS файлов.
- Основной CSS файл из темы по умолчанию для Wordpress
Общий размер - 9 788 байт
В сжатом виде - 5 927 байт
Степень сжатия - 61%
- CSS файл из скина для FCKeditor
Общий размер - 8 478 байт
В сжатом виде - 4 227 байт
Степень сжатия - 50%
Как видно из этих примеров, сжатие CSS позволяет значительно сократить размер файлов.
Подробнее о CSSTidy на официальном сайте - http://csstidy.sourceforge.net/
- MySQL: Триггеры в MySQL
- PHP: CSSTidy - эффективное сжатие CSS
- JavaScript: Работа с cookies в Javascript
- Сервисы: Ajaxload - сервис для создания индикаторов
- PHP: date() по-русски