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 相关文章推荐
用session做客户验证时的注意事项
Oct 09 PHP
php 图片上添加透明度渐变的效果
Jun 29 PHP
PHP 如何利用phpexcel导入数据库
Aug 24 PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
Apr 10 PHP
ThinkPHP中I(),U(),$this-&gt;post()等函数用法
Nov 22 PHP
Centos PHP 扩展Xchche的安装教程
Jul 09 PHP
PHP常用的三种设计模式汇总
Aug 28 PHP
CodeIgniter开发实现支付宝接口调用的方法示例
Nov 14 PHP
利用PHP访问带有密码的Redis方法示例
Feb 09 PHP
PHP中file_put_contents追加和换行的实现方法
Apr 01 PHP
PHP数据库操作三:redis用法分析
Aug 16 PHP
php依赖注入知识点详解
Sep 23 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
JavaScript创建命名空间的5种写法
2014/06/24 PHP
php在数组中查找指定值的方法
2015/03/17 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
2017/02/08 PHP
JavaScript 无符号右移赋值操作
2009/04/17 Javascript
JQuery 学习笔记 element属性控制
2009/07/23 Javascript
javascript作用域容易记错的两个地方分析
2012/06/22 Javascript
Lazy Load 延迟加载图片的jQuery插件中文使用文档
2012/10/18 Javascript
js图片闪动特效可以控制间隔时间如几分钟闪动一下
2014/08/12 Javascript
javascript中的正则表达式使用指南
2015/03/01 Javascript
Javascript实现获取及设置光标位置的方法
2015/07/21 Javascript
AngularJS自定义指令实现面包屑功能完整实例
2017/05/17 Javascript
JS实现上传图片实时预览功能
2017/05/22 Javascript
AngularJS 最常用的八种功能(基础知识)
2017/06/26 Javascript
浅谈JavaScript中的属性:如何遍历属性
2017/09/14 Javascript
vue滚动轴插件better-scroll使用详解
2017/10/17 Javascript
VS Code转换大小写、修改选中文字或代码颜色的方法
2017/12/15 Javascript
解析原来浏览器原生支持JS Base64编码解码
2019/08/12 Javascript
Vue中的transition封装组件的实现方法
2019/08/13 Javascript
Node 代理访问的实现
2019/09/19 Javascript
Element实现表格嵌套、多个表格共用一个表头的方法
2020/05/09 Javascript
JavaScript中常用的3种弹出提示框(alert、confirm、prompt)
2020/11/10 Javascript
[04:56]经典回顾:前Ehome 与 前LGD
2015/02/26 DOTA
Python实现判断一行代码是否为注释的方法
2018/05/23 Python
pandas 数据索引与选取的实现方法
2019/06/21 Python
Django model update的多种用法介绍
2020/03/28 Python
Python API自动化框架总结
2019/11/12 Python
Python OpenCV读取显示视频的方法示例
2020/02/20 Python
Python爬取微信小程序Charles实现过程图解
2020/09/29 Python
HTML5的video标签的浏览器兼容性增强方案分享
2016/05/19 HTML / CSS
How TDD works
2012/09/30 面试题
财务管理专业应届毕业生求职信
2013/09/22 职场文书
毕业生自荐信格式
2014/03/07 职场文书
产品质量承诺书
2014/03/27 职场文书
新学期国旗下演讲稿
2014/05/08 职场文书
民政局副局长民主生活会个人对照检查材料
2014/09/19 职场文书
让JavaScript代码更加精简的方法技巧
2022/06/01 Javascript