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 选项及相关信息函数库
Dec 04 PHP
php连接mysql数据库代码
Mar 10 PHP
php中unlink()、mkdir()、rmdir()等方法的使用介绍
Dec 21 PHP
php无限遍历目录示例
Feb 21 PHP
兼容ie6浏览器的php下载文件代码分享
Jul 14 PHP
详谈PHP编码转换问题
Jul 28 PHP
php获取图片信息的方法详解
Dec 10 PHP
对比PHP对MySQL的缓冲查询和无缓冲查询
Jul 01 PHP
PHP设计模式之原型模式定义与用法详解
Apr 03 PHP
php实现等比例压缩图片
Jul 26 PHP
PHP常见的几种攻击方式实例小结
Apr 29 PHP
详解PHP中的8个魔术常量
Jul 06 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利用COM对象访问SQLServer、Access
2006/10/09 PHP
通过对服务器端特性的配置加强php的安全
2006/10/09 PHP
PHP cdata 处理(详细介绍)
2013/07/05 PHP
php出租房数据管理及搜索页面
2017/05/23 PHP
PHP实现文字写入图片功能
2019/02/18 PHP
php输出控制函数和输出函数生成静态页面
2019/06/27 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
用JavaScript脚本实现Web页面信息交互
2006/10/11 Javascript
js如何获取兄弟、父类等节点
2014/01/06 Javascript
JavaScript Math.floor方法(对数值向下取整)
2015/01/09 Javascript
jQuery实现返回顶部效果的方法
2015/05/29 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
基于jQuery和CSS3制作数字时钟附源码下载(jquery篇)
2015/11/24 Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
2016/05/13 Javascript
基于jQuery实现表格内容的筛选功能
2016/08/21 Javascript
Ext JS 实现建议词模糊动态搜索功能
2017/05/13 Javascript
Vue.js对象转换实例
2017/06/07 Javascript
JS+HTML+CSS实现轮播效果
2017/11/28 Javascript
解决Vue.js 2.0 有时双向绑定img src属性失败的问题
2018/03/14 Javascript
使用Angular CLI从蓝本生成代码详解
2018/03/24 Javascript
微信小程序中使用ECharts 异步加载数据的方法
2018/06/27 Javascript
Vue 实现从小到大的横向滑动效果详解
2019/10/16 Javascript
vue中使用element ui的弹窗与echarts之间的问题详解
2019/10/25 Javascript
Python中模块string.py详解
2017/03/12 Python
Django中数据库的数据关系:一对一,一对多,多对多
2018/10/21 Python
Django中如何防范CSRF跨站点请求伪造攻击的实现
2019/04/28 Python
Python While循环语句实例演示及原理解析
2020/01/03 Python
使用IPython或Spyder将省略号表示的内容完整输出
2020/04/20 Python
Reebonz中国官网:新加坡奢侈品购物网站
2017/03/17 全球购物
请解释接口的显式实现有什么意义
2012/05/26 面试题
小型女装店的创业计划书
2014/01/09 职场文书
英语专业个人求职信范文
2014/02/01 职场文书
青年志愿者先进事迹
2014/05/06 职场文书
应届生求职信
2014/05/31 职场文书
小学生运动会报道稿
2014/09/12 职场文书
Android RecyclerView实现九宫格效果
2022/06/28 Java/Android