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 相关文章推荐
文章推荐系统(二)
Oct 09 PHP
php递归函数中使用return的注意事项
Jan 17 PHP
php命名空间学习详解
Feb 27 PHP
Linux下安装PHP MSSQL扩展教程
Oct 24 PHP
Yii学习总结之安装配置
Feb 22 PHP
正确的PHP匹配UTF-8中文的正则表达式
May 13 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
Dec 23 PHP
PHP经典算法集锦【经典收藏】
Sep 14 PHP
PHP实现使用DOM将XML数据存入数组的方法示例
Sep 27 PHP
thinkphp5 URL和路由的功能详解与实例
Dec 26 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
Dec 12 PHP
PHP基于array_unique实现二维数组去重
Jul 14 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 Memcache 中实现消息队列
2009/11/24 PHP
php数组函数序列之sort() 对数组的元素值进行升序排序
2011/11/02 PHP
PHP实现按之字形顺序打印二叉树的方法
2018/01/16 PHP
关于PhpStorm设置点击编辑文件自动定位源文件的实现方式
2020/12/30 PHP
JavaScript Date对象使用总结
2009/05/14 Javascript
基于Jquery的将DropDownlist的选中值赋给label的实现代码
2011/05/06 Javascript
javascript管中窥豹 形参与实参浅析
2011/12/17 Javascript
Node.js中创建和管理外部进程详解
2014/08/16 Javascript
jQuery切换所有复选框选中状态的方法
2015/07/02 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
js中的关联数组与普通数组详解
2016/07/27 Javascript
鼠标拖动改变DIV等网页元素的大小的实现方法
2017/07/06 Javascript
vue写一个组件
2018/04/09 Javascript
jQuery超简单遮罩层实现方法示例
2018/09/06 jQuery
angularJs中$scope数据序列化的实例
2018/09/30 Javascript
Node.js折腾记一:读指定文件夹,输出该文件夹的文件树详解
2019/04/20 Javascript
使用ThinkJs搭建微信中控服务的实现方法
2019/08/08 Javascript
javascript实现摄像头拍照预览
2019/09/30 Javascript
TypeScript魔法堂之枚举的超实用手册
2020/10/29 Javascript
python装饰器与递归算法详解
2016/02/18 Python
python利用smtplib实现QQ邮箱发送邮件
2020/05/20 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
python创建学生管理系统
2019/11/22 Python
Python 识别12306图片验证码物品的实现示例
2020/01/20 Python
python opencv进行图像拼接
2020/03/27 Python
关于解决iframe标签嵌套问题的解决方法
2020/03/04 HTML / CSS
专营店会计助理岗位职责
2013/11/29 职场文书
创业计划书如何编写
2014/02/06 职场文书
2015年幼儿园毕业感言
2014/02/12 职场文书
党的群众路线教育实践活动公开承诺书
2014/03/28 职场文书
技校毕业生自荐书
2014/05/23 职场文书
大专应届毕业生求职信
2014/07/15 职场文书
学校安全工作汇报材料
2014/08/16 职场文书
新店开张宣传语
2015/07/13 职场文书
详解vue身份认证管理和租户管理
2021/05/25 Vue.js
nginx 配置缓存
2022/05/11 Servers