zoukankan      html  css  js  c++  java
  • PHP压缩html网页代码原理(清除空格,换行符,制表符,注释标记)

    本博启用了一个叫wp super cache的页面压缩工具,
    源代码没有去查看,不过原理很简单。
    我们可以自己动手书写一个压缩脚本。

    清除换行符,清除制表符,去掉注释标记 。它所起到的作用不可小视。
    现提供PHP 压缩HTML函数。请大家不妨试试看,感觉还不错吧。

    不废话了,直接上代码:

    <?php
    
    /**
     * 压缩html : 清除换行符,清除制表符,去掉注释标记
     * @param $string
     * @return 压缩后的$string
     * */
    function compress_html($string) {
        $string = str_replace("
    ", '', $string); //清除换行符
        $string = str_replace("
    ", '', $string); //清除换行符
        $string = str_replace("	", '', $string); //清除制表符
        $pattern = array(
            "/> *([^ ]*) *</", //去掉注释标记
            "/[s]+/",
            "/<!--[^!]*-->/",
            "/" /",
            "/ "/",
            "'/*[^*]**/'"
        );
        $replace = array(
            ">\1<",
            " ",
            "",
            """,
            """,
            ""
        );
        return preg_replace($pattern, $replace, $string);
    }
    ?>

    如上的代码只是进行了简单的替换操作,但真正的HTML页面压缩还不只是如此。

    对于一个前端开发毕竟有经验的程序员来说,一般习惯是把js文件放置在body中内容的最后面,
    这样对于加载速度来说,会更快的显示我们的页面,但缺陷是,我们的绑定事件可能会失效。
    所以我们还需要对页面的所有的js代码进行整理合并,并写入一个文件当中。
    这样的话,我们还需要在页面输出之前,对html代码进行匹配检索,

    把所有符合js标签的内容进行正则,再按先后循序进行合并保存,插入到页面的末尾。

    最终的效果如下:

    这是我的首页压缩效果:
    image

    页尾效果:

    image
    打开其中的链接,内容是已经压缩好了的js脚本。

  • 相关阅读:
    jQuery 原理的模拟代码 0 目录
    非真实渲染技术(NPR)1.卡通渲染
    [翻译]延迟着色(1)
    Bloom原理
    bloom, Fake HDR, True HDR(转)
    [翻译]延迟着色(2)
    STL中map与hash_map容器的选择
    将文本转换成IDirect3DTexture9
    D3D中的AGP内存、系统内存、显存的理解
    如何加强角色渲染的真实感(self shadow + subsurface scattering + rim lighting)
  • 原文地址:https://www.cnblogs.com/phpdragon/p/3675336.html
Copyright © 2011-2022 走看看