使用PHP根据请求缩小JS / CSS文件

时间:2012-10-23 12:56:17

标签: php javascript css ajax minify

我目前正在编写一个javascript类,它根据站点的需要从我的服务器加载库。与Google API e.g. google.load('jquery','1.7.1')非常相似。

我想做的其中一件事是将所有JS / CSS文件合并为一个并使用PHP缩小它们。我已经很好地了解了网络,虽然我能够在Stackoverflow上找到关于这个主题的一些问题,但它们似乎有点过时了。因此,结果,我决定重新开启这场辩论,以便获得有关这一主题的最新信息。

我能够在网上找到两个PHP Javascript minifiers,这些是

  1. JShrink
  2. Javascript Packer
  3. 我确实找到了第三个(JSMin),但这个没有维护

    我的问题非常简单:

    1. 这些脚本是否可靠且可维护?他们甚至需要维护吗?
    2. 他们压缩CSS吗?
    3. 哪个脚本更好?

2 个答案:

答案 0 :(得分:5)

我没有使用JShrink或Javascript Packer。我认为最好的解决方案是使用Google's Closure Compiler进行JS缩小。您可以在服务器上使用其命令行Java应用程序(如果您有权这样做)或通过cURL或Zend_Request访问其RESTful API。

如果源文件没有更改,请不要忘记缓存缩小的文件并重复使用它们。

使用cURL看起来像这样:

$inFile = "sample.js";
$outFile = "sample.min.js";

$ch = curl_init('http://closure-compiler.appspot.com/compile');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array(
  'js_code' => file_get_contents($inFile),
  'compilation_level' => 'SIMPLE_OPTIMIZATIONS',
  'output_format' => 'text',
  'output_info' => 'compiled_code'
)));

file_put_contents($outFile, curl_exec($ch));

答案 1 :(得分:0)

我正在使用这个,它运作良好http://code.google.com/p/minify/

如果您在Windows上开发,可能无法识别新版本,但是修改文件会看到它