【发布时间】:2012-02-17 13:23:48
【问题描述】:
我有一些 JavaScript,它是由 PHP 代码使用模板生成的。
模板的结果是一个包含 JavaScript 但语句分散在其中的文件。
我想通过删除空格和 cmets 来减小此文件的大小。
但是,我在网上只能找到用于纯 JavaScript 的工具,这些工具非常复杂。
我已经准备好使用同一系统编写一个脚本来减少 HTML 和基于 CSS 的内容,我正在寻找有关减少 JavaScript 文件大小的信息,以便我可以编写一个可以处理 PHP 代码的缩减脚本在文件中。
所以我想要的是:
减少 JavaScript 代码大小的教程。 我可以分析一个用于减少 JavaScript 大小的简单脚本。 或者一个可以与 JavaScript 代码内联的 PHP 正常工作的工具(必须是公共领域,或允许在商业作品中使用的开源)
编辑:
$script = preg_replace('%/\*.*?\*/%','',$script);
$compress = preg_split('%("|\'|/)(?:\\\\|\\\1|[^\1])*?\1|<\?php\s+(?:("|\')(?:\\\\|\\\2|[^\2])*?\2|[^"\']*?)*?\?>%',$script);
preg_match_all('%(("|\'|/)(?:\\\\|\\\2|[^\2])*?\2|<\?php\s+(?:("|\')(?:\\\\|\\\3|[^\3])*?\3|[^"\']*?)*?\?>)%',$script,$no_compress);
foreach ($compress as &$block) { $block = preg_replace('%\s+%',' ',$block); }
我想我已经解决了,上面应该删除 C 样式的 cmets,然后围绕 PHP 块、Javascript Strings ' 或 " 和 Regex Patterns / 拆分剩余代码,并提取代码块、字符串和正则表达式模式、模式或字符串中的代码应作为正则表达式中的第二个选项而被忽略。 最后一行应该将压缩块中的空白减少到一个空格
那么这应该只是块的重组问题,即
$cscript .= $compress[$i].$no_compress[$i]
重建脚本。
我错过了什么?
【问题讨论】:
标签: php javascript minify inline-code