PHP根据传入参数合并多个JS和CSS文件的简单实现


Posted in PHP onJune 13, 2014

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; 
}

只是个简单原型,没有封装。另外,合并后的文件记得配合缓存。
PHP 相关文章推荐
PHP新手上路(十三)
Oct 09 PHP
phpmyadmin的#1251问题
Nov 25 PHP
dedecms 制作模板中使用的全局标记图文教程
Mar 11 PHP
php文件夹与文件目录操作函数介绍
Sep 09 PHP
php获取表单中多个同名input元素的值
Mar 20 PHP
thinkPHP实现瀑布流的方法
Nov 29 PHP
php实现RSA加密类实例
Mar 26 PHP
简单了解WordPress开发中update_option()函数的用法
Jan 11 PHP
PHP和MYSQL实现分页导航思路详解
Apr 11 PHP
ThinkPHP 在阿里云上的nginx.config配置实例详解
Oct 11 PHP
PHP设计模式之工厂模式定义与用法详解
Apr 03 PHP
php的对象传值与引用传值代码实例讲解
Feb 26 PHP
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
Jun 12 #PHP
CodeIgniter框架过滤HTML危险代码
Jun 12 #PHP
让CodeIgniter的ellipsize()支持中文截断的方法
Jun 12 #PHP
Codeigniter实现多文件上传并创建多个缩略图
Jun 12 #PHP
让codeigniter与swfupload整合的最佳解决方案
Jun 12 #PHP
Codeigniter实现处理用户登录验证后的URL跳转
Jun 12 #PHP
PHP 面向对象程序设计(oop)学习笔记 (五) - PHP 命名空间
Jun 12 #PHP
You might like
php adodb连接mssql解决乱码问题
2009/06/12 PHP
WordPress开发中用于标题显示的相关函数使用解析
2016/01/07 PHP
PHP中Array相关函数简介
2016/07/03 PHP
Thinkphp和Bootstrap结合打造个性的分页样式(推荐)
2016/08/01 PHP
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
Javascript 函数parseInt()转换时出现bug问题
2014/05/20 Javascript
不使用ajax实现无刷新提交表单
2014/12/21 Javascript
JS实现控制表格只显示行边框或者只显示列边框的方法
2015/03/31 Javascript
jQuery position() 函数详解以及jQuery中position函数的应用
2015/12/14 Javascript
详解react如何在组件中获取路由参数
2017/06/15 Javascript
JavaScript 用fetch 实现异步下载文件功能
2017/07/21 Javascript
浅谈vuex之mutation和action的基本使用
2017/08/29 Javascript
webpack 样式加载的实现原理
2018/06/12 Javascript
解决循环中setTimeout执行顺序的问题
2018/06/20 Javascript
vue中rem的配置的方法示例
2018/08/30 Javascript
vue 项目接口管理的实现
2019/01/17 Javascript
解决layui表格的表头不滚动的问题
2019/09/04 Javascript
Nuxt.js实现一个SSR的前端博客的示例代码
2019/09/06 Javascript
基于JavaScript伪随机正态分布代码实例
2019/11/07 Javascript
详谈python http长连接客户端
2017/06/12 Python
Python实现查找最小的k个数示例【两种解法】
2019/01/08 Python
下载官网python并安装的步骤详解
2019/10/12 Python
python+mysql实现个人论文管理系统
2019/10/25 Python
基于python实现计算且附带进度条代码实例
2020/03/31 Python
python opencv pytesseract 验证码识别的实现
2020/08/28 Python
Reformation官网:美国女装品牌
2018/09/14 全球购物
Amcal中文官网:澳洲综合性连锁药房
2019/03/28 全球购物
美国运动鞋类和服装零售连锁店:Shoe Palace
2019/08/13 全球购物
莫斯科的韩国化妆品店:Sifo
2019/12/04 全球购物
Linux Interview Questions For software testers
2012/06/02 面试题
外贸业务员求职信
2014/06/16 职场文书
房屋鉴定委托书范本
2014/09/23 职场文书
乡镇党的群众路线对照检查材料
2014/09/24 职场文书
中层领导干部群众路线对照检查材料思想汇报
2014/10/02 职场文书
幼儿园元旦主持词
2015/07/06 职场文书
Java数组详细介绍及相关工具类
2022/04/14 Java/Android