我用这个 PHP 脚本缩小了我的 HTML 页面:
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
最后两点:
您能给我一些帮助吗?我发现这个主题并且这段代码对我来说效果很好,但它并没有删除js代码中的空格!我还发现了下一个表达式 - ("#^\s*([^\s].)\s$#U", - 它删除了js中的空格!是否可以将其插入代码中?如果是的话,帮我插入。