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入门速成(2)
Oct 09 PHP
PHP 和 COM
Oct 09 PHP
Windows2003 下 MySQL 数据库每天自动备份
Dec 21 PHP
推荐一篇入门级的Class文章
Mar 19 PHP
在PHP中读取和写入WORD文档的代码
Apr 09 PHP
php学习之 认清变量的作用范围
Jan 26 PHP
用PHP将数据导入到Foxmail的实现代码
Sep 05 PHP
批量去除PHP文件中bom的PHP代码
Mar 13 PHP
解析如何修改phpmyadmin中的默认登陆超时时间
Jun 25 PHP
php列出mysql表所有行和列的方法
Mar 13 PHP
PHP aes (ecb)解密后乱码问题
Jun 22 PHP
PHP7扩展开发教程之Hello World实现方法示例
Aug 03 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
Zerg兵种介绍
2020/03/14 星际争霸
『PHP』PHP截断函数mb_substr()使用介绍
2013/04/22 PHP
Smarty模板简单配置与使用方法示例
2016/05/23 PHP
yii2 数据库读写分离配置示例
2017/02/10 PHP
使用php自动备份数据库表的实现方法
2017/07/28 PHP
javascript for循环设法提高性能
2010/02/24 Javascript
腾讯与新浪的通过IP地址获取当前地理位置(省份)的接口
2010/07/26 Javascript
遍历jquery对象的代码分享
2011/11/02 Javascript
javascript中局部变量和全局变量的区别详解
2015/02/27 Javascript
如何在Linux上安装Node.js
2016/04/01 Javascript
JavaScript代码实现图片循环滚动效果
2020/03/19 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
原生js实现轮播图
2017/02/27 Javascript
js实现拖拽功能
2017/03/01 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
5 种JavaScript编码规范
2018/01/30 Javascript
electron实现静默打印的示例代码
2019/08/12 Javascript
vue组件中传值EventBus的使用及注意事项说明
2020/11/16 Javascript
初学Python实用技巧两则
2014/08/29 Python
Python实现批量执行同目录下的py文件方法
2019/01/11 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
Python对ElasticSearch获取数据及操作
2019/04/24 Python
GitHub 热门:Python 算法大全,Star 超过 2 万
2019/04/29 Python
Python实现最常见加密方式详解
2019/07/13 Python
tensorflow mnist 数据加载实现并画图效果
2020/02/05 Python
PyTorch如何搭建一个简单的网络
2020/08/24 Python
HTML5中的autofocus(自动聚焦)属性介绍
2014/04/23 HTML / CSS
移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法
2015/03/27 HTML / CSS
新西兰廉价汽车租赁:Snap Rentals
2018/09/14 全球购物
美国鲜花递送:UrbanStems
2021/01/04 全球购物
酒店公关部经理岗位职责
2013/11/24 职场文书
党支部承诺书范文
2014/03/28 职场文书
五好家庭事迹材料
2014/12/20 职场文书
《别在吃苦的年纪选择安逸》读后感3篇
2019/11/30 职场文书
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
2022/08/14 Servers