如何在不删除 IE 条件注释的情况下缩小 php html 输出?

问题描述 投票:0回答:2

我用这个 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 条件注释吗?

谢谢。

php
2个回答
0
投票

您的代码不处理多行 HTML 注释,仅删除第一行。此外,如果您/您的服务器使用 gzip 压缩,则由此节省的成本可以忽略不计。即:

Uncompressed, un-minified page: 2209 bytes
Compressed,   un-minified page:  959 bytes

Uncompressed, minified page:    1973 bytes
Compressed,   minified page:     914 bytes

最后两点:

  1. 缩小 HTML 使其几乎无法阅读,所以祝您顺利解决任何问题。
  2. 较大的页面通常具有更好的压缩率,特别是在数据重复的情况下。

0
投票

您能给我一些帮助吗?我发现这个主题并且这段代码对我来说效果很好,但它并没有删除js代码中的空格!我还发现了下一个表达式 - ("#^\s*([^\s].)\s$#U", - 它删除了js中的空格!是否可以将其插入代码中?如果是的话,帮我插入。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.