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 相关文章推荐
在IIS上安装PHP4.0正式版
Oct 09 PHP
PHP n个不重复的随机数生成代码
Jun 23 PHP
vs中通过剪切板循环来循环粘贴不同内容
Apr 30 PHP
php使用百度ping服务代码实例
Jun 19 PHP
百度实时推送api接口应用示例
Oct 21 PHP
9个实用的PHP代码片段分享
Jan 22 PHP
php实现的mongodb操作类
May 28 PHP
PHP+JS三级菜单联动菜单实现方法
Feb 24 PHP
PHP实现的浏览器检查类
Apr 11 PHP
PHP Callable强制指定回调类型的方法
Aug 30 PHP
详解关于php的xdebug配置(编辑器vscode)
Jan 29 PHP
php写入mysql中文乱码的实例解决方法
Sep 17 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
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
2011/08/18 PHP
解析phpstorm + xdebug 远程断点调试
2013/06/20 PHP
改写ThinkPHP的U方法使其路由下分页正常
2014/07/02 PHP
php获取错误信息的方法
2015/07/17 PHP
PHP实现上传图片到 zimg 服务器
2016/10/19 PHP
PHP带节点操作的无限分类实现方法详解
2016/11/09 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
各浏览器中querySelector和querySelectorAll的实现差异分析
2012/05/23 Javascript
jquery图片切换插件
2015/03/16 Javascript
jquery实现图片上传之前预览的方法
2015/07/11 Javascript
整理Javascript事件响应学习笔记
2015/12/02 Javascript
js实现select选择框效果及美化
2016/08/19 Javascript
vue绑定设置属性的多种方式(5)
2017/08/16 Javascript
jQuery扩展方法实现Form表单与Json互相转换的实例代码
2018/09/05 jQuery
JS异步执行结果获取的3种解决方式
2019/02/19 Javascript
vue-element-admin 菜单标签失效的解决方式
2019/11/12 Javascript
jquery更改元素属性attr()方法操作示例
2020/05/22 jQuery
学习 Vue.js 遇到的那些坑
2021/02/02 Vue.js
python网络编程学习笔记(四):域名系统
2014/06/09 Python
Python实现求一个集合所有子集的示例
2018/05/04 Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
2019/06/19 Python
python 发送json数据操作实例分析
2019/10/15 Python
wxPython实现列表增删改查功能
2019/11/19 Python
Python装饰器实现方法及应用场景详解
2020/03/26 Python
keras训练浅层卷积网络并保存和加载模型实例
2020/07/02 Python
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
探讨HTML5移动开发的几大特性(必看)
2015/12/30 HTML / CSS
中东奢侈品市场:Coveti
2019/05/12 全球购物
Crabtree & Evelyn欧盟:豪华洗浴、身体和护发
2021/03/09 全球购物
linux面试题参考答案(7)
2014/07/24 面试题
夜大毕业生自我鉴定
2013/10/31 职场文书
2014年消防工作实施方案
2014/02/20 职场文书
医院义诊活动总结
2014/07/04 职场文书
《法国号》教学反思
2016/02/22 职场文书
创业计划书之餐饮馄饨店
2019/07/18 职场文书
Python面向对象编程之类的概念
2021/11/01 Python