PHP小技巧之JS和CSS优化工具Minify的使用方法

 更新时间:2014年05月19日 09:26:40   作者:  
为减少HTTP请求,我们往往需要合并和压缩多个JS和CSS文件,下面记录下网上关于实现这个功能的PHP源码以及开源项目Minify的使用方法

一、实现合并和压缩多个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实现的62进制转10进制,10进制转62进制函数示例

    PHP实现的62进制转10进制,10进制转62进制函数示例

    这篇文章主要介绍了PHP实现的62进制转10进制,10进制转62进制函数,结合具体实例形式分析了php针对62进制与10进制相互转换的操作技巧,需要的朋友可以参考下
    2019-06-06
  • PHP反射原理与用法深入分析

    PHP反射原理与用法深入分析

    这篇文章主要介绍了PHP反射原理与用法,结合实例形式深入分析了PHP反射的概念、原理、应用场景及相关操作技巧,需要的朋友可以参考下
    2019-09-09
  • php析构函数的简单使用说明

    php析构函数的简单使用说明

    与构造函数相反,在PHP5中,可以定义一个名为__destruct()的函数,称之为PHP5析构函数,PHP将在对象在内存中被销毁前调用析构函数,使对象在彻底消失之前完成一些工作。对象在销毁一般可以通过赋值为null实现。
    2015-08-08
  • php数组添加与删除单元的常用函数实例分析

    php数组添加与删除单元的常用函数实例分析

    这篇文章主要介绍了php数组添加与删除单元的常用函数,实例分析了array_push、array_pop、array_shift及array_unshift等函数的使用技巧,需要的朋友可以参考下
    2015-02-02
  • PHP实现对文本数据库的常用操作方法实例演示

    PHP实现对文本数据库的常用操作方法实例演示

    这篇文章主要介绍了PHP实现对文本数据库的常用操作方法,需要的朋友可以参考下
    2014-07-07
  • 快速配置PHPMyAdmin方法

    快速配置PHPMyAdmin方法

    今天想提一下如何配置PHPMyAdmin,虽然在本机开发、调试系统时或许并不会用到它,但对于将来在远程虚拟主机中放置Mysql数据库时,必然会用到phpmyadmin这样的Mysql GUI工具,所以,在本地先熟悉一下如何使用也是有必要的。
    2008-06-06
  • 探讨:web上存漏洞及原理分析、防范方法

    探讨:web上存漏洞及原理分析、防范方法

    本篇文章是对web上存漏洞及原理分析、防范方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php str_pad 函数用法简介

    php str_pad 函数用法简介

    php的str_pad()函数是把字符串填充为指定的长度,和str_repeat有类似之处,至于str_repeat的用法在此不作解释,有兴趣的可以查找手册.
    2009-07-07
  • 对象失去焦点时自己动提交数据的实现代码

    对象失去焦点时自己动提交数据的实现代码

    生产线上,提升输入员输入效率,在没有购买到Bar code枪之前,需要修改程序,即是说当mouse光标离开TextBox之后,数据自动提交到数据库中
    2012-11-11
  • php eval函数用法总结

    php eval函数用法总结

    这个函数我想很多朋友都知道,黑客用得最多的一句了,可以解析php 代码并且运行哦,eval是函数不可在php中禁止,以前我就以为可以在php.ini禁止此函数,结果失败了
    2012-10-10

最新评论