Блог Евгения Попова :: Программы :: DataLife Engine

Минификация HTML кода страницы в DLE


Сжатие HTML кода страниц, и больше тут нечего сказать... На 13+ можно ставить плагином без ручных манипуляций с правкой файлов. Ну... и тему их хаков перекинул в плагины.

Для начала немного кода, плагин в самом конце ?

В index.php который в корне сайта выше строчки
@ob_start ();

вставить код
function sanitize_output($buffer) {
$search = array('/\>[^\S ]+/s', '/[^\S ]+\</s', '/(\s)+/s', '/<!--(.*?)-->/', '/\>[^\S ]+/s', '/[^\S ]+\</s', '/(\s)+/s');
$replace = array('>', '<', '\\1', '', '>', '<', '\\1');
$buffer = preg_replace($search, $replace, $buffer);
return $buffer;
}

или
function sanitize_output($buffer) {
$search = array('/\>[^\S ]+/s', '/[^\S ]+\</s', '/(\s)+/s', '/<!--(.*?)-->/', '/\>[^\S ]+/s', '/[^\S ]+\</s', '/(\s)+/s');
$replace = array('>', '<', '\\1', '<!--\\1-->', '>', '<', '\\1');
$buffer = preg_replace($search, $replace, $buffer);
return $buffer;
}

или
function sanitize_output($buffer) {
$search = array(

'/\>[^\S ]+/s', // Прокладка пробелы после тегов, кроме космоса
'/[^\S ]+\</s', // Прокладка пробелы перед тегами, за исключением космоса
'/\s{5,}/' // если виджеты работать не будут поставить цыфру 4/3/5

);

$replace = array(
'>',
'<',
'\\1'
);
$buffer = preg_replace($search, $replace, $buffer);
return $buffer;
}

Далее в /engine/modules/main.php найти
echo $tpl->result['main'];

заменить на код
ob_start("sanitize_output");
echo $tpl->result['main'];
ob_end_flush();

[attachment=64:minifikacija-html-koda-stranic.zip]
Перейти на сайт (скачивать файлы можно только на сайте)