Файл cssmin.php, расположенный в /lib/cssmin.php в Cotonti CMF, предназначен для минимизации CSS-кода. Его основная функция заключается в удалении лишних пробелов, комментариев и незначащих символов из CSS-файлов с целью уменьшения их размера и, как следствие, ускорения загрузки веб-страниц.
Место в системе Cotonti CMF
Cotonti — это модульная CMS, ориентированная на производительность и гибкость. В ней предусмотрены различные механизмы для оптимизации работы веб-сайта, включая кеширование, сжатие данных и загрузку минимизированных ресурсов.
Файл cssmin.php является частью библиотеки вспомогательных функций (/lib/) и может использоваться в Cotonti CMF в различных контекстах:
- Оптимизация загружаемых CSS-ресурсов — при передаче CSS-кода в браузер сокращается его объем.
- Минимизация inline-стилей — если в шаблоне или в динамически генерируемом HTML-коде используется встроенный CSS, его можно минимизировать перед выводом.
- Поддержка кеширования — минимизированный CSS-код может сохраняться в кеше, чтобы снизить нагрузку на сервер.
Функциональность и задачи
Файл выполняет следующие основные задачи:
- Удаление избыточных пробелов — последовательности пробельных символов заменяются одним пробелом, что сокращает размер файла.
- Удаление CSS-комментариев — устраняются комментарии вида
/* комментарий */, которые не нужны в финальной версии CSS.
- Оптимизация форматирования — удаляются пробелы перед и после
{, }, : и ;, убирается ненужная точка с запятой перед }.
Условия выполнения
Минимизация применяется к строковому CSS-коду, который передается в качестве аргумента. Код работает универсально, не зависимо от контекста, и может использоваться как для обработки статических файлов, так и для сжатия динамических стилей.
Вывод
Файл cssmin.php в Cotonti CMF является вспомогательным инструментом для минимизации CSS. Он помогает улучшить производительность сайта, уменьшая объем передаваемых данных и снижая нагрузку на сервер.
<?php
/**
* Простая функция минимизации CSS
*
* @param string $css CSS-код // Принимает строку с CSS-кодом
* @return string // Возвращает минимизированную строку CSS
*/
function minify_css($css)
{
// Удаляет все повторяющиеся пробельные символы, заменяя их на один пробел
$css = preg_replace('#\s+#', ' ', $css);
// Удаляет многострочные комментарии /* ... */
$css = preg_replace('#/\*.*?\*/#s', '', $css);
// Убирает лишние пробелы после точек с запятой
$css = str_replace('; ', ';', $css);
// Убирает пробелы после двоеточий
$css = str_replace(': ', ':', $css);
// Удаляет пробел перед открывающей фигурной скобкой
$css = str_replace(' {', '{', $css);
// Удаляет пробел после открывающей фигурной скобки
$css = str_replace('{ ', '{', $css);
// Удаляет пробел после запятых (например, в списках селекторов)
$css = str_replace(', ', ',', $css);
// Убирает пробел перед закрывающей фигурной скобкой
$css = str_replace('} ', '}', $css);
// Убирает точку с запятой перед закрывающей фигурной скобкой
$css = str_replace(';}', '}', $css);
// Удаляет лишние пробелы в начале и в конце строки перед возвратом результата
return trim($css);
}