PHP根据传入参数合并多个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;

  }

  只是个简单原型,没有封装。另外,合并后的文件记得配合缓存。