PHP小技巧之JS和CSS优化工具Minify的使用方法


Posted in PHP onMay 19, 2014

一、实现合并和压缩多个JS和CSS文件的代码

HTML:

<link rel="stylesheet" type="text/css" href="cssmin.php?get=base,style1,style2,global&path=css/&v=20131023" />
<script type="text/javascript" src="jsmin.php?get=jquery-1.6.4.min.js,minjquery.js,minjquery.ui.js,test.js,global.js&path=js/&v=20131023"></script>

PHP:

//输出JS
header ("Content-type:Application/x-javascript; Charset: utf-8");
if(isset($_GET)) {
 $files = explode(",", $_GET['get']);
 $str = '';
 foreach ($files as $key => $val){
  $str .= file_get_contents($_GET['path'].$val);
 }
 $str = str_replace("\t", "", $str); //清除空格
 $str = str_replace("\r\n", "", $str); 
 $str = str_replace("\n", "", $str); 
 // 删除单行注释
 $str = preg_replace("/\/\/\s*[a-zA-Z0-9_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/", "", $str); 
 // 删除多行注释
 $str = preg_replace("/\/\*[^\/]*\*\//s", "", $str);
 echo $str;
}
//输出CSS
header ("content-type:text/css; charset: utf-8");
if(isset($_GET)) {
 $files = explode(",", $_GET['get']);
 $fc = '';
 foreach ($files as $key => $val){
  $fc .= file_get_contents($_GET['path'].$val.".css");
 } 
 $fc = str_replace("\t", "", $fc); //清除空格
 $fc = str_replace("\r\n", "", $fc); 
 $fc = str_replace("\n", "", $fc); 
 $fc = preg_replace("/\/\*[^\/]*\*\//s", "", $fc); 
 echo $fc; 
}

只是个简单原型,没有封装。另外,合并后的文件记得配合缓存

二、Minify的使用方法

1、从code.google.com/p/minify/下载最新版Minify并解压缩,将"min"文件夹连同里面的内容一起复制到DOCUMENT_ROOT目录下(即网站跟目录)。

可以修改文件夹名"min"

2、在"min/groupsConfig.php"里配置g参数

return array(
  // 'js' => array('//js/file1.js', '//js/file2.js'),
  // 'css' => array('//css/file1.css', '//css/file2.css'),
);

3、在网页中按照如下方式引用就可以了:

<script type="text/javascript" src="/min/g=js&20140519"></script>

后面的数字可以用更新日期来作标志,"min"和步骤1里的名称对应。

4、性能优化,请参考code.google.com/p/minify/wiki/CookBook

注意:

1、需要将httpd.conf里的rewrite_module模块开启

2、开发过程中,可以将调试模式开启,开发完毕后再将调试模式关闭,可以利用火狐浏览器的firebug来查看

$min_allowDebugFlag = true
PHP 相关文章推荐
实用函数7
Nov 08 PHP
php IP及IP段进行访问限制的代码
Dec 17 PHP
PHP爆绝对路径方法收集整理
Sep 17 PHP
基于PHP CURL用法的深入分析
Jun 09 PHP
YII路径的用法总结
Jul 09 PHP
PHP转盘抽奖接口实例
Feb 09 PHP
php返回字符串中所有单词的方法
Mar 09 PHP
php版微信开发Token验证失败或请求URL超时问题的解决方法
Sep 23 PHP
PHP屏蔽关键字实现方法
Nov 17 PHP
详解PHP中的序列化、反序列化操作
Mar 21 PHP
PHP实现简单的模板引擎功能示例
Sep 02 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
Oct 30 PHP
php开启openssl的方法
May 15 #PHP
PHP整数取余返回负数的相关解决方法
May 15 #PHP
PHP取余函数介绍MOD(x,y)与x%y
May 15 #PHP
php实例分享之通过递归实现删除目录下的所有文件详解
May 15 #PHP
php实例分享之二维数组排序
May 15 #PHP
php表单请求获得数据求和示例
May 15 #PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
May 15 #PHP
You might like
PHP CURL模拟GET及POST函数代码
2010/04/25 PHP
PHP中的多行字符串传递给JavaScript的两种方法
2014/06/19 PHP
PHP两种去掉数组重复值的方法比较
2014/06/19 PHP
在Mac上编译安装PHP7的开发环境
2015/07/28 PHP
Thinkphp 空操作、空控制器、命名空间(详解)
2017/05/05 PHP
使用 laravel sms 构建短信验证码发送校验功能
2017/11/06 PHP
javascript动态添加表格数据行(ASP后台数据库保存例子)
2010/05/08 Javascript
js去除重复字符串两种实现方法
2013/01/09 Javascript
定时器(setTimeout/setInterval)调用带参函数失效解决方法
2013/03/26 Javascript
Area 区域实现post提交数据的js写法
2014/04/22 Javascript
Jquery中的$.each获取各种返回类型数据的使用方法
2015/05/03 Javascript
JavaScript实现将数组数据添加到Select下拉框的方法
2015/08/21 Javascript
JS实现表单多文件上传样式美化支持选中文件后删除相关项
2016/09/30 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
谈谈VUE种methods watch和compute的区别和联系
2017/08/01 Javascript
js表单序列化判断空值的实例
2017/09/22 Javascript
Vue异步加载about组件
2017/10/31 Javascript
常见的浏览器存储方式(cookie、localStorage、sessionStorage)
2019/05/07 Javascript
vue实现自定义H5视频播放器的方法步骤
2019/07/01 Javascript
layui table设置某一行的字体颜色方法
2019/09/05 Javascript
js实现简单的贪吃蛇游戏
2020/04/23 Javascript
jquery实现淡入淡出轮播图效果
2020/12/13 jQuery
[01:48:04]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第一场 2月7日
2021/03/11 DOTA
Python的Django框架中的Context使用
2015/07/15 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
2019/08/04 Python
用Python自动清理电脑内重复文件,只要10行代码(自动脚本)
2021/01/09 Python
澳洲的UGG雪地靴超级市场:Uggs.com.au
2020/04/06 全球购物
外语系毕业生找工作的求职信
2013/11/28 职场文书
5.1手机促销活动
2014/01/17 职场文书
2014两会优秀的心得体会范文
2014/03/17 职场文书
优秀党务工作者事迹材料
2014/05/07 职场文书
教师党员先进性教育自我剖析材料思想汇报
2014/09/24 职场文书
2015秋季开学典礼主持词
2015/07/16 职场文书
初中班主任工作随笔
2015/08/15 职场文书
python opencv通过按键采集图片源码
2021/05/20 Python
SpringBoot整合MongoDB的实现步骤
2021/06/23 MongoDB