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 相关文章推荐
基于mysql的论坛(2)
Oct 09 PHP
PHP 获取目录下的图片并随机显示的代码
Dec 28 PHP
浅析SVN常见问题及解决方法
Jun 21 PHP
php文件上传的例子及参数详解
Dec 12 PHP
PHP生成条形图的方法
Dec 10 PHP
PHP+MYSQL实现用户的增删改查
Mar 24 PHP
JSON字符串传到后台PHP处理问题的解决方法
Jun 05 PHP
php mysqli查询语句返回值类型实例分析
Jun 29 PHP
Thinkphp开发--集成极光推送
Sep 15 PHP
Yii 框架控制器创建使用及控制器响应操作示例
Oct 14 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
Nov 14 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+mysql数据库查询实例
2015/01/21 PHP
基于jquery循环map功能的代码
2011/02/26 Javascript
javascript函数声明和函数表达式区别分析
2014/12/02 Javascript
javascript数组去重的方法汇总
2015/04/14 Javascript
jQuery焦点图切换特效代码分享
2015/09/15 Javascript
Jquery日历插件制作简单日历
2015/10/28 Javascript
不同js异步函数同步的实现方法
2016/05/28 Javascript
AngularJS基础 ng-repeat 指令简单示例
2016/08/03 Javascript
JS实现根据用户输入分钟进行倒计时功能
2016/11/14 Javascript
Bootstrap栅格系统的使用和理解2
2016/12/14 Javascript
jQuery实现的浮动层div浏览器居中显示效果
2017/02/03 Javascript
微信小程序实战之自定义toast(6)
2017/04/18 Javascript
layer弹窗插件操作方法详解
2017/05/19 Javascript
bootstrap table服务端实现分页效果
2017/08/10 Javascript
详解vue的diff算法原理
2018/05/20 Javascript
纯JS实现可用于页码更换的飞页特效示例
2018/05/21 Javascript
使用js实现将后台传入的json数据放在前台显示
2018/08/06 Javascript
使用React手写一个对话框或模态框的方法示例
2019/04/25 Javascript
node事件循环和process模块实例分析
2020/02/14 Javascript
解决antd 下拉框 input [defaultValue] 的值的问题
2020/10/31 Javascript
python中如何实现将数据分成训练集与测试集的方法
2019/09/13 Python
pycharm修改file type方式
2019/11/19 Python
Python反爬虫伪装浏览器进行爬虫
2020/02/28 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
2020/04/27 Python
Keras设置以及获取权重的实现
2020/06/19 Python
爬虫代理的cookie如何生成运行
2020/09/22 Python
使用豆瓣源来安装python中的第三方库方法
2021/01/26 Python
会计实习生自我鉴定
2013/12/12 职场文书
酒店个人求职信范文
2014/01/25 职场文书
带薪年假请假条
2014/02/04 职场文书
工作决心书范文
2014/03/11 职场文书
银行委托书范本
2014/04/04 职场文书
年终奖发放方案
2014/06/02 职场文书
文艺有韵味的诗句(生命类、亲情类...)
2019/07/11 职场文书
CSS极坐标的实例代码
2021/06/03 HTML / CSS
CSS中calc(100%-100px)不加空格不生效
2023/05/07 HTML / CSS