13.01.2018 09:10:56 am
Сжатые, подключенные .css файлы становятся легче, а значит загрузка страниц вашего сайта будет немного быстрее, что в свою очередь дает преимущества вашему сайту. О способах ускорения загрузки я писал в теме: Ускорить загрузку сайта. В этой же теме я показал, как доработал сжатие .css файлов в своем движке: Ускорить загрузку сайта (Сообщение отдельно: #1552). В этой теме я хочу детально разобрать, как можно сжимать .css файлы.
Для одного своего проекта я писал класс compression, который выполнял сжатие файлов стиля, вот он:
Метод класса creatureCSS читает файл стиля, убирает все лишнее (пробелы, табуляции и комментарии) и создает новый файл, оригинал при этом остается не неизмененным. Методу необходимо передать два параметра:
Код метода я прокомментировал, так, что думаю объяснять, что там происходит не надо.
Пользоваться классом можно так:
Например, из такого кода:
Должно получиться так:
Для одного своего проекта я писал класс compression, который выполнял сжатие файлов стиля, вот он:
class compression
{
// Создание файла "style.css"
// Функция создаёт сжатую копию файла ".css".
public function creatureCSS($file, $original)
{
$css = file_get_contents($original); // Получение кода в строку
$css = str_replace(array("\n", "\t", ' '), '', $css); // Удаление табуляции, четыре идущих подряд пробела и переносов на новую строку
$css = preg_replace('|/\*.*?\*/|', '', $css); // Удаление комментариев
$css = preg_replace('|([,:;){}]) |', '$1', $css); // Удаление пробелов после символов ",:;){}"
$css = preg_replace('| ([{])|', '$1', $css); // Удаление пробела перед символом "{"
$f = fopen($file, 'w'); // Создание нового файла
fwrite($f, $css); // Запись сжатого кода в файл
fclose($f); // Закрытие файла
} // Создание файла "style.css" End
}
Метод класса creatureCSS читает файл стиля, убирает все лишнее (пробелы, табуляции и комментарии) и создает новый файл, оригинал при этом остается не неизмененным. Методу необходимо передать два параметра:
$file
- Название нового файла.
$original
- Название файла, который необходимо сжать.Код метода я прокомментировал, так, что думаю объяснять, что там происходит не надо.
Пользоваться классом можно так:
$compression = new compression(); // Создаем объект
$compression->creatureCSS($file, $original); // Передаем необходимые параметры для сжатия
Например, из такого кода:
body {
background-color: #FFFFFF;
font: 12px Verdana, Arial, sans-serif;
line-height: 13px;
margin: 3px auto;
width: 860px;
}
div {
vertical-align: top;
overflow: hidden
}
table {
width: 100%;
}
Должно получиться так:
body{background-color:#FFFFFF;font:12px Verdana,Arial,sans-serif;line-height:13px;margin:3px auto;width:860px;}div{vertical-align:top;overflow:hidden}table{width:100%;}
- Жалоба