本文实例讲述了PHP实现动态压缩js与css文件的方法。分享给大家供大家参考,具体如下:
正式发布产品时,我们希望将项目里的js,css合并压缩,以减少http请求、防止轻易查看源代码。
使用
只需要在头部引入一下代码即可:
demo
这段代码会在指定的目录(例如common/)里生成压缩过后的js和css.每次更新了js,css内容,请先删除生成的压缩文件。
示例:
4e387d5edce14cc2bd6396f6ebb7921b.css 7c10211f113f3175489196d336d67734.js
注意:
编写的css和js文件一定要符合规范。例如一定要加分号。js的function可以不加分号。
引用的资源
function parse_css($urls)
{
$url = md5(implode(',', $urls));
$path = FCPATH. 'static/parse/';
$css_url = $path . $url . '.css';
if (!file_exists($css_url)) {
if (!file_exists($path))
mkdir($path, 0777);
$css_content = '';
foreach ($urls as $url) {
$css_content .= @file_get_contents($url);
}
$css_content = str_replace("rn", '', $css_content); //清除换行符
$css_content = str_replace("n", '', $css_content); //清除换行符
$css_content = str_replace("t", '', $css_content); //清除制表符
$css_content = str_replace("../images/", "./../common/images/", $css_content);
@file_put_contents($css_url, $css_content);
}
$css_url = str_replace(FCPATH, '', $css_url);
return $css_url;
}
function parse_script($urls)
{
$url = md5(implode(',', $urls));
$path = FCPATH. '/static/parse/';
$js_url = $path . $url . '.js';
if (!file_exists($js_url)) {
if (!file_exists($path))
mkdir($path, 0777);
load_qy_lib('JavascriptPacker');
$js_content = '';
foreach ($urls as $url) {
$append_content = @file_get_contents($url) . "rn";
$packer = new JavascriptPacker($append_content);
$append_content = $packer->_basicCompression($append_content);
$js_content .= $append_content;
}
@file_put_contents($js_url, $js_content);
}
$js_url = str_replace(FCPATH, '', $js_url);
return $js_url;
}
项目里引用到第三方类库JavascriptPacker可以在github下载:
gkralik/php-uglifyjs
https://github.com/gkralik/php-uglifyjs
PS:这里再为大家推荐几款相似的在线工具供大家参考:
Javascript压缩/格式化/加密工具:
http://tools.jb51.net/code/jscompress
在线CSS代码压缩、格式化工具:
http://tools.jb51.net/code/css
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php文件操作总结》、《PHP目录操作技巧汇总》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》及《php程序设计算法总结》
希望本文所述对大家PHP程序设计有所帮助。



