Я уменьшаю свои HTML-страницы с помощью этого скрипта PHP:
function compress_html($html) { preg_match_all('!(<(?:code|pre|script).*>[^<]+</(?:code|pre|script)>)!', $html, $pre); $html = preg_replace('!<(?:code|pre).*>[^<]+</(?:code|pre)>!', '#pre#', $html); $html = preg_replace('#<!–[^\[].+–>#', '', $html); $html = preg_replace('/[\r\n\t]+/', ' ', $html); $html = preg_replace('/>[\s]+</', '><', $html); $html = preg_replace('/\s+/', ' ', $html); if (!empty($pre[0])) { foreach ($pre[0] as $tag) { $html = preg_replace('!#pre#!', $tag, $html,1); } } return $html; } ob_start('compress_html');
Есть способ удалить только «комментарии HTML» … а не условные комментарии IE?
Благодарю.
Ваш код не обрабатывает многострочные комментарии HTML, удаляя только первую строку. Кроме того, сбережения, которые вы получаете от этого, незначительны, если вы / ваш сервер используете сжатие gzip. то есть:
Uncompressed, un-minified page: 2209 bytes Compressed, un-minified page: 959 bytes Uncompressed, minified page: 1973 bytes Compressed, minified page: 914 bytes
Последние два момента:
Это можно сделать аккуратно с помощью библиотеки PHPWee Minifier. Он минимизирует HTML (включая HTML5) без нарушения условных комментариев.
1. Установите PHPWee
2. Используйте PHPWee для сжатия вашего HTML-кода.
require_once ("phpwee-php-minifier/phpwee.php"); function compress_html($html) { return PHPWee\Minify::html($html); }