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 相关文章推荐
php中http_build_query 的一个问题
Mar 25 PHP
php实现兼容2038年后Unix时间戳转换函数
Mar 18 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
Mar 19 PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
Apr 17 PHP
在Mac OS的PHP环境下安装配置MemCache的全过程解析
Feb 15 PHP
Android App中DrawerLayout抽屉效果的菜单编写实例
Mar 21 PHP
PHP上传图片类显示缩略图功能
Jun 30 PHP
php基于PDO连接MSSQL示例DEMO
Jul 13 PHP
PHP编程实现脚本异步执行的方法
Aug 09 PHP
浅谈PHP实现大流量下抢购方案
Dec 15 PHP
PHP重置数组为连续数字索引的几种方式总结
Mar 12 PHP
PHP中引用类型和值类型功能与用法示例
Feb 26 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写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名
2017/05/26 PHP
jQuery使用手册之一
2007/03/24 Javascript
基于jQuery的前端数据通用验证库
2011/08/08 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
jQuery Ajax调用WCF服务详细教程
2015/03/31 Javascript
基于replaceChild制作简单的吞噬特效
2015/09/21 Javascript
基于jquery实现可定制的web在线富文本编辑器附源码下载
2015/11/17 Javascript
轻松学习jQuery插件EasyUI EasyUI表单验证
2015/12/01 Javascript
jQuery实现checkbox列表的全选、反选功能
2016/11/24 Javascript
vue.js移动端app之上拉加载以及下拉刷新实战
2017/09/11 Javascript
用node开发并发布一个cli工具的方法步骤
2019/01/03 Javascript
JS实现判断数组是否包含某个元素示例
2019/05/24 Javascript
原生js实现商品筛选功能
2019/10/28 Javascript
使用uni-app开发微信小程序的实现
2019/12/13 Javascript
JavaScript JSON使用原理及注意事项
2020/07/30 Javascript
在vue中实现嵌套页面(iframe)
2020/07/30 Javascript
基于vue的video播放器的实现示例
2021/02/19 Vue.js
[03:32]2014DOTA2西雅图邀请赛 CIS外卡赛赛前black专访
2014/07/09 DOTA
Python实现从百度API获取天气的方法
2015/03/11 Python
python操作 hbase 数据的方法
2016/12/18 Python
python3解析库pyquery的深入讲解
2018/06/26 Python
django mysql数据库及图片上传接口详解
2019/07/18 Python
python主线程与子线程的结束顺序实例解析
2019/12/17 Python
JACK & JONES瑞典官方网站:杰克琼斯欧式风格男装
2017/12/23 全球购物
中国跨境在线时尚零售商:Bellelily
2018/04/06 全球购物
巴西美妆购物网站:Kutiz Beauté
2019/03/13 全球购物
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
2013/03/30 面试题
机电一体化毕业生求职信
2013/11/02 职场文书
审核会计岗位职责
2013/11/08 职场文书
财务会计毕业生个人求职信
2014/02/03 职场文书
七夕活动策划方案
2014/08/16 职场文书
租赁协议书
2015/01/27 职场文书
家长对孩子的寄语
2015/02/26 职场文书
温馨祝福晨语:美丽的一天从我的问候开始
2019/11/28 职场文书
解决linux下redis数据库overcommit_memory问题
2022/02/24 Redis
vscode内网访问服务器的方法
2022/06/28 Servers