代码之家  ›  专栏  ›  技术社区  ›  superUntitled

在php中组合和压缩多个JavaScript文件

  •  12
  • superUntitled  · 技术社区  · 15 年前

    我想知道什么是最好的方式组合和压缩所有的文件动态。

    最终的结果是,我将在头文件中包含一个.js文件,而该.js文件将在我的“includes/js”目录中包含一个.js文件。

    谢谢

    5 回复  |  直到 15 年前
        1
  •  15
  •   pgb    15 年前

    你可以用 jsmin-php

    他们的示例代码是:

    require 'jsmin-1.1.1.php';
    
    // Output a minified version of example.js.
    echo JSMin::minify(file_get_contents('example.js'));
    

    您可以通过执行以下操作轻松地连接多个js文件:

    require 'jsmin-1.1.1.php';
    
    // Output a minified version of example.js.
    echo JSMin::minify(file_get_contents('example.js') . file_get_contents('example2.js'));
    
        2
  •  7
  •   Parrots    15 年前

    我用过 Minify 我的jQuery/PHP项目取得了很大的成功。它还包括缓存,因此没有太多开销。

    我最终改变了一些事情,并使用.htaccess将所有请求发送到我的javascript文件夹,然后发送到minify脚本,例如:

    <script type="text/javascript" src="/js/jquery.js,js/jquery-levitip.js,js/jquery-facebox.js,js/datepicker.js,js/ga.js"></script>
    

    我的前端HTML路由到我的缩小脚本中,它将所有这些脚本作为一个整体返回,经过压缩和缩小。这样我就可以正常地定义包含,所有事情都发生在幕后。

    但无论如何,检查一下 user guide

        3
  •  2
  •   TheHippo    15 年前

    你可能需要 Yahoo JavaScript Compressor 这是一个可以从PHP脚本开始的命令行工具。

        4
  •  0
  •   Steve C    12 年前

    你可以试试 PHP Speedy

        5
  •  -2
  •   user956584    12 年前
     function compress($buffer) {
            /* remove comments */
            $buffer = preg_replace("/((?:\/\*(?:[^*]|(?:\*+[^*\/]))*\*+\/)|(?:\/\/.*))/", "", $buffer);
            /* remove tabs, spaces, newlines, etc. */
            $buffer = str_replace(array("\r\n","\r","\t","\n",'  ','    ','     '), '', $buffer);
            /* remove other spaces before/after ) */
            $buffer = preg_replace(array('(( )+\))','(\)( )+)'), ')', $buffer);
            return $buffer;
        }
    

    资料来源: http://castlesblog.com/2010/august/14/php-javascript-css-minification