我正在开发一个需要8个javascript文件的PHP应用程序(hello web2.0)。
我想知道动态组合和压缩所有文件的最佳方法是什么。 我是否正确地表达了这个问题?
最终结果是我在头文件中包含一个.js文件,而.js文件将在我的“includes / js”目录中包含.js文件。
感谢。
答案 0 :(得分: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'));
答案 1 :(得分:7)
我在我的jQuery / PHP项目中使用Minify并取得了很大的成功。它也包括缓存,因此没有太多开销。
我最后改变了一些事情并使用.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路由放入我的minify脚本中,它将所有这些脚本作为一个脚本返回,压缩和缩小。这样我就可以正常定义包含,一切都在幕后发生。
但是无论如何要检查他们网站上的user guide,这是非常好的记录,你应该能够以你想要的方式拉出你想要的东西。哦,它也适用于CSS。
答案 2 :(得分:2)
您可以使用Yahoo JavaScript Compressor这是一个命令行工具,您可以从PHP脚本开始。
答案 3 :(得分:0)
您可以尝试PHP Speedy这会将您的JS文件合并并压缩为1个单独的文件。它还会压缩您的HTML和CSS,您的页面加载速度会快得多。
答案 4 :(得分:-2)
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