Cжатие CSS кода

четверг, 29 ноября 2007 г.

Кодга вы пишите сайт, то часто приходится выбирать между красивым дизайном и функционалом сайта. Всем хочется что бы была хорошя навигация, красивый дизайн и что бы были функциональные возможности. Очень хорошим свойством сайта является его быстрая загрузка. Никто не хочет ждать долго, поэтому я могу предложить один из вариантов реализации сжатия css файлов для более быстрой загрузки страниц.
Ведь каждый программист пишет в коде комментарии, заметки и когда используем стандартные методы сжатия файлов, то получаем в итоге исходный код, очищенный от комментариев, пустых строк и лишних пробелов. Это конечо хорошо, но когда встает вопрос о дополнии или изменении кода css-файлов, то тут уже возникает сложность - комментарии удалены, заметок нет. Приходится долго вспоминать и тратить драгоценное время.
Итак, для сжатия css кода, но в то же время не изменяя его, можно использовать средства PHP.
Первую часть кода пишем в самом начале CSS - файла, вторую часть пишем в самом конце.


<?php
  header('Content-type: text/css'); //указываем, что это именно css
  ob_start("compress"); //включаем буферизацию вывода для дальнейшего сжатия
  function compress($buffer) {
    // удаляем комментарии
    $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
    // удаляем отступы, пробелы, пустые строки.
    $buffer = str_replace(array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', $buffer);
    return $buffer;
  }
?>


и к конце css-файла пишем

<?php ob_end_flush();?>

Если хотите сослаться на файл, используя имя , например, style.css и у вас есть распарсенный php код, то можете использовать следующий метод в файле .htaccess


<Files screen.css>
 SetHandler  application/x-httpd-php 
</Files>

Copyright © 2010 WEB IT blog