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 相关文章推荐
md5 16位二进制与32位字符串相互转换示例
Dec 30 PHP
ThinkPHP多表联合查询的常用方法
Mar 24 PHP
Apache连接PHP后无法启动问题解决思路
Jun 18 PHP
php实现的用户查询类实例
Jun 18 PHP
PHP时间类完整实例(非常实用)
Dec 25 PHP
PHP中模拟链表和链表的基本操作示例
Feb 27 PHP
简单解决微信文章图片防盗链问题
Dec 17 PHP
PHP实现简单ajax Loading加载功能示例
Dec 28 PHP
Yii2实现增删改查后留在当前页的方法详解
Jan 13 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
Nov 17 PHP
php字符串过滤strip_tags()函数用法实例分析
Jun 24 PHP
通过PHP实现获取访问用户IP
May 09 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编写的一个E-mail验证类
2015/03/25 PHP
Yii2单元测试用法示例
2016/11/12 PHP
php获取'/'传参的值简单方法
2017/07/13 PHP
PHP编程实现阳历转换为阴历的方法实例
2017/08/08 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
laravel5.1 ajax post 传值_token示例
2019/10/24 PHP
php上传图片并给图片打上透明水印的代码
2010/06/07 Javascript
为开发者准备的10款最好的jQuery日历插件
2014/02/04 Javascript
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
js同源策略详解
2015/05/21 Javascript
Node.js 条形码识别程序构建思路详解
2016/02/14 Javascript
javascript简单实现等比例缩小图片的方法
2016/07/27 Javascript
ionic cordova一次上传多张图片(类似input file提交表单)的实现方法
2016/12/16 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
2017/02/09 Javascript
一次记住JavaScript的6个正则表达式方法
2018/02/22 Javascript
vue构建动态表单的方法示例
2018/09/22 Javascript
使用Vue父子组件通信实现todolist的功能示例代码
2019/04/11 Javascript
JS中比较两个Object数组是否相等方法实例
2019/11/11 Javascript
纯Python开发的nosql数据库CodernityDB介绍和使用实例
2014/10/23 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
2018/09/25 Python
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
2018/11/06 Python
python 使用re.search()筛选后 选取部分结果的方法
2018/11/28 Python
Django 模型类(models.py)的定义详解
2019/07/19 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
2019/10/24 Python
Python 类的魔法属性用法实例分析
2019/11/21 Python
Python包,__init__.py功能与用法分析
2020/01/07 Python
python实现mask矩阵示例(根据列表所给元素)
2020/07/30 Python
OpenCV灰度化之后图片为绿色的解决
2020/12/01 Python
塑料制成的可水洗的编织平底鞋和鞋子:Rothy’s
2018/09/16 全球购物
优质美利奴羊毛袜,不只是徒步旅行:Darn Tough Vermont
2018/11/05 全球购物
《伯牙绝弦》教学反思
2014/03/02 职场文书
小学生爱国演讲稿
2014/04/25 职场文书
技术经济专业求职信
2014/09/03 职场文书
会议营销主持词
2015/07/03 职场文书
2016年学校“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
如何解决php-fpm启动不了问题
2021/11/17 PHP