Стиль с расширением .php

Рейтинг: 0Ответов: 3Опубликовано: 10.03.2015
HTML:
<link rel="stylesheet" href="compress_css.php" type="text/css">

PHP:
compress_css.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();

Что скажете по поводу моей затеи? Во всех ли браузерах будет работать? (Тестировал на своём тапочке, через браузер Опера - работает)

Ответы

▲ 3Принят

Во всех ли браузерах будет работать?

Вы выполняете обработку на сервере. Нет ни одной причины, почему для одного браузера она будет выполняться иначе, чем для другого.

Что скажите по-поводу моей затее?

Что скажете по (дефиса нет) поводу моей затеи.

Скажу, что это велосипед, для минификации стоит использовать yui compressor и аналоги, для сборки стилей - либо сборщик типа gulp, либо, что еще лучше, препроцессор - LESS, Stylus, SASS. И что действительно необдуманная замена всех пробелов приведет к ошибкам в многословных правилах, не говоря уж о том, что и банальный font-family: 'Courier New'; благополучно скончается.

▲ 2

У меня тоже через PHP собирается конечные стили.
Хотя и на пару порядков сложнее, но мне кажется это очень удобным - подключаю кучу стилей одной строкой, управляю доступом, добавляю "за ширмой", etc...

▲ 1

Затея хорошая, но как будет обработан такой стиль: border: 1px solid #999; или такой: margin: 5px auto 15px auto;

Отвечаю: все поплывет.