Как минимизировать HTML-код? - PullRequest
8 голосов
/ 28 апреля 2011

Моя идея состоит в том, чтобы каким-то образом минимизировать код HTML на стороне сервера, чтобы клиент получал меньше байтов.

Что я имею в виду под словом "минифицировать"?проносясь.Как, например, создатели jQuery делают с .min .js версиями.Другими словами, мне нужно удалить ненужные пробелы и новые строки, но я не могу удалить столько, чтобы представление HTML изменилось (например, удалить пробел между реальными словами в абзаце).

Есть ли инструменты, которые могут это сделать?Я знаю, что есть HtmlPurifier .Это в состоянии сделать это?Любые другие варианты?

PS Пожалуйста, не предлагайте регулярные выражения.Я знаю, что только Чак Норрис может анализировать HTML с ними.=]

Ответы [ 5 ]

10 голосов
/ 24 августа 2013

Немного поздно, но все же ... С помощью output_buffering это так просто:

function compress($string)
{
    // Remove html comments
    $string = preg_replace('/<!--.*-->/', '', $string);

    // Merge multiple spaces into one space
    $string = preg_replace('/\s+/', ' ', $string);   

    // Remove space between tags. Skip the following if
    // you want as it will also remove the space 
    // between <span>Hello</span> <span>World</span>.
    return preg_replace('/>\s+</', '><', $string);      
}

ob_start('compress');

// Here goes your html.    

ob_end_flush();
3 голосов
/ 28 апреля 2011

Вы можете проанализировать HTML-код в дереве DOM (которое должно содержать пробелы содержимого в узлах), а затем сериализовать его обратно в HTML, без каких-либо пробитировок.

2 голосов
/ 04 февраля 2019

Есть ли инструменты, которые могут это сделать?

Вы можете использовать CodVerter Online Editor для веб-разработки для сжатия смешанного HTML-кода.компрессор был проверен несколько раз на надежность и точность.(Полное раскрытие: я один из разработчиков).

enter image description here

2 голосов
/ 03 мая 2011

Есть ли инструменты, которые могут это сделать?

Да, вот инструмент, который вы можете включить в процесс компоновки или в слой веб-кэша: http://code.google.com/p/htmlcompressor/

Или, если вы ищете инструмент для минимизации вставляемого HTML, попробуйте: http://www.willpeavy.com/minifier/

0 голосов
/ 25 ноября 2011

Вы можете использовать инструмент Pretty Diff: http://prettydiff.com/?m=minify&html Он также минимизирует любые CSS и JavaScript в HTML-коде, а минимизация происходит регрессивным образом, чтобы не препятствовать будущему украшению HTML обратно в читаемыйформа.

...