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写的MySQL数据库用户认证系统代码
Mar 22 PHP
php strtotime 函数UNIX时间戳
Jan 14 PHP
php实现文件下载简单示例(代码实现文件下载)
Mar 10 PHP
php实现天干地支计算器示例
Mar 14 PHP
php_screw安装使用教程(另一个PHP代码加密实现)
May 29 PHP
php读取csc文件并输出
May 21 PHP
完美解决phpexcel导出到xls文件出现乱码的问题
Oct 29 PHP
PHP中for循环与foreach的区别
Mar 06 PHP
PHP常用工具函数小结【移除XSS攻击、UTF8与GBK编码转换等】
Apr 27 PHP
php创建多级目录与级联删除文件的方法示例
Sep 12 PHP
php策略模式简单示例分析【区别于工厂模式】
Sep 25 PHP
laravel 修改记住我功能的cookie保存时间的方法
Oct 14 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实现 data url的图片生成与保存
2016/12/04 PHP
PHP微商城开源代码实例
2019/03/27 PHP
Laravel框架下的Contracts契约详解
2020/03/17 PHP
Js 获取HTML DOM节点元素的方法小结
2009/04/24 Javascript
javascript 控制 html元素 显示/隐藏实现代码
2009/09/01 Javascript
基于jquery.Jcrop的头像编辑器
2010/03/01 Javascript
尝试动手制作javascript放大镜效果
2015/12/25 Javascript
浅谈JS的基础类型与引用类型
2016/09/13 Javascript
JQuery Ajax WebService传递参数的简单实例
2016/11/02 Javascript
javascript工厂模式和构造函数模式创建对象方法解析
2016/12/30 Javascript
jQuery实现文章图片弹出放大效果
2017/04/06 jQuery
xmlplus组件设计系列之文本框(TextBox)(3)
2017/05/03 Javascript
React 高阶组件入门介绍
2018/01/11 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
微信小程序实现聊天室
2020/08/21 Javascript
[11:01]2014DOTA2西雅图邀请赛 冷冷带你探秘威斯汀
2014/07/08 DOTA
在Python3中使用asyncio库进行快速数据抓取的教程
2015/04/02 Python
tensorflow学习笔记之mnist的卷积神经网络实例
2018/04/15 Python
python3 requests中使用ip代理池随机生成ip的实例
2018/05/07 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
Python3搭建http服务器的实现代码
2020/02/11 Python
Django {{ MEDIA_URL }}无法显示图片的解决方式
2020/04/07 Python
Pycharm 2020.1 版配置优化的详细教程
2020/08/07 Python
python判断元素是否存在的实例方法
2020/09/24 Python
python绘图pyecharts+pandas的使用详解
2020/12/13 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
捷克钓鱼用品网上商店:Parys.cz
2018/06/15 全球购物
The North Face北面美国官网:美国著名户外品牌
2018/09/15 全球购物
COS美国官网:知名服装品牌
2019/04/08 全球购物
俄罗斯童装网上商店:BebaKids
2020/06/06 全球购物
大学生职业规划前言模板
2013/12/27 职场文书
党的群众路线教育学习材料
2014/05/12 职场文书
诉讼授权委托书
2014/10/15 职场文书
计算机实训报告范文
2014/11/05 职场文书
2015年后勤工作总结范文
2015/04/08 职场文书
卖车协议书范文
2016/03/23 职场文书