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

2015-01-24信息快讯网

为减少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

Windows下安装PHP单元测试环境PHPUnit图文教程
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
ThinkPHP整合百度Ueditor图文教程
PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
php开启与关闭错误提示适用于没有修改php.ini的权限
ThinkPHP基于PHPExcel导入Excel文件的方法
PHP中使用Session配合Javascript实现文件上传进度条功能
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
php json_encode()函数返回json数据实例代码
php返回json数据函数实例
自定义session存储机制避免会话保持问题
php中json_encode UTF-8中文乱码的更好解决方法
PHP会话控制:Session与Cookie详解
php使用$_POST或$_SESSION[]向js函数传参
PHP处理JSON字符串key缺少双引号的解决方法
phpmyadmin出现Cannot start session without errors问题解决方法
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
ECMall支持SSL连接邮件服务器的配置方法详解
php开启openssl的方法
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
ThinkPHP使用心得分享-上传类UploadFile的使用
ThinkPHP使用心得分享-分页类Page的用法
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
phpMyAdmin自动登录和取消自动登录的配置方法
PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
php使用正则过滤js脚本代码实例
PHP中把stdClass Object转array的几个方法
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
php中session过期时间设置及session回收机制介绍
JS异常处理try..catch语句的作用和实例
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法
php+js iframe实现上传头像界面无跳转
phpmyadmin打开很慢的解决方法
php使用json_encode对变量json编码
php5.2 Json不能正确处理中文、GB编码的解决方法
©2014-2024 dbsqp.com