1、实现合并和压缩多个JS和CSS文件的代码javascript
HTML:php
<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>css
PHP: 代码以下java
//输出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);
}jquery
$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;
}优化
2、Minify的使用方法网站
一、从code.google.com/p/minify/下载最新版Minify并解压缩,将"min"文件夹连同里面的内容一块儿复制到DOCUMENT_ROOT目录下(即网站跟目录)。
能够修改文件夹名"min"
二、在"min/groupsConfig.php"里配置g参数
代码以下:
return array(
// 'js' => array('//js/file1.js', '//js/file2.js'),
// 'css' => array('//css/file1.css', '//css/file2.css'),
);
三、在网页中按照以下方式引用就能够了:
<script type="text/javascript" src="/min/g=js&20140519"></script>
后面的数字能够用更新日期来做标志,"min"和步骤1里的名称对应。
四、性能优化,请参考code.google.com/p/minify/wiki/CookBook
注意:
一、须要将httpd.conf里的rewrite_module模块开启
二、开发过程当中,能够将调试模式开启,开发完毕后再将调试模式关闭,能够利用火狐浏览器的firebug来查看
代码以下:
$min_allowDebugFlag = true