PHP动态压缩js,css
来源:互联网 发布:淘宝公安冬季棉警服 编辑:程序博客网 时间:2024/06/06 12:27
正式发布产品时,我们希望将项目里的js,css合并压缩,以减少http请求、防止轻易查看源代码。
使用
只需要在头部引入一下代码即可:
<meta charset="utf-8"/> <title>demo</title> <?php //定义需要压缩的文件 $css = array( CSS_PATH . 'base.css', CSS_PATH . 'style.css', CSS_PATH . 'my.css' ); $js = array( PUB_PATH . '/lib/zepto.min.js', PUB_PATH . '/js/1.js', JS_PATH . '2.js', ); $css_path = base_url(parse_css($css)); $js_path = base_url(parse_script($js)); ?> <link rel="stylesheet" type="text/css" href="<?php echo $css_path ?>"> <script src="<?php echo $js_path ?>"></script> <!--下面可以继续放不能压缩或者不想压缩的文件--> <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
这段代码会在指定的目录(例如common/)里生成压缩过后的js和css.每次更新了js,css内容,请先删除生成的压缩文件。
示例:
4e387d5edce14cc2bd6396f6ebb7921b.css 7c10211f113f3175489196d336d67734.js
注意:
编写的css和js文件一定要符合规范。例如一定要加分号。js的function可以不加分号。
引用的资源
/*** 合并压缩css*/function parse_css($urls){ $url = md5(implode(',', $urls)); $path = FCPATH. 'static/parse/'; $css_url = $path . $url . '.css'; if (!file_exists($css_url)) { if (!file_exists($path)) mkdir($path, 0777); $css_content = ''; foreach ($urls as $url) { $css_content .= @file_get_contents($url); } $css_content = str_replace("\r\n", '', $css_content); //清除换行符 $css_content = str_replace("\n", '', $css_content); //清除换行符 $css_content = str_replace("\t", '', $css_content); //清除制表符 $css_content = str_replace("../images/", "./../common/images/", $css_content); @file_put_contents($css_url, $css_content); } $css_url = str_replace(FCPATH, '', $css_url); return $css_url;}/*** 合并压缩js*/function parse_script($urls){ $url = md5(implode(',', $urls)); $path = FCPATH. '/static/parse/'; $js_url = $path . $url . '.js'; if (!file_exists($js_url)) { if (!file_exists($path)) mkdir($path, 0777); load_qy_lib('JavaScriptPacker'); $js_content = ''; foreach ($urls as $url) { $append_content = @file_get_contents($url) . "\r\n"; $packer = new JavaScriptPacker($append_content); $append_content = $packer->_basicCompression($append_content); $js_content .= $append_content; } @file_put_contents($js_url, $js_content); } $js_url = str_replace(FCPATH, '', $js_url); return $js_url;}
项目里引用到第三方类库JavaScriptPacker可以在github下载:
/** * 9 April 2008. version 1.1 * * This is the php version of the Dean Edwards JavaScript's Packer, * Based on : * * ParseMaster, version 1.0.2 (2005-08-19) Copyright 2005, Dean Edwards * a multi-pattern parser. * KNOWN BUG: erroneous behavior when using escapeChar with a replacement * value that is a function * * packer, version 2.0.2 (2005-08-19) Copyright 2004-2005, Dean Edwards * * License: http://creativecommons.org/licenses/LGPL/2.1/ * * Ported to PHP by Nicolas Martin. * * ---------------------------------------------------------------------- * changelog: * 1.1 : correct a bug, '\0' packed then unpacked becomes '\'. * ---------------------------------------------------------------------- * * Changes: * 2014-08-28: grkalik: change class for composer support. no functionality change. *
*/
互联网+时代,时刻要保持学习,携手千锋PHP,Dream It Possible。更多PHP相关技术请搜索千锋PHP,做真实的自己,用良心做教育。
阅读全文
0 0
- PHP动态压缩js,css
- PHP动态压缩js,css
- js、css动态压缩页面代码
- php压缩多个CSS/JS文件
- js、css文件gzip静态压缩以及gzip动态压缩
- 使用PHP来动态生成CSS/JS
- web应用性能优化--采用gzip静态压缩+动态压缩方式压缩js、css文件
- nginx+php+minify 压缩你的css、js
- nginx+php+minify 压缩你的css、js 详解
- nginx+php+minify 压缩你的css、js 详解
- JS压缩与CSS压缩
- 用PHP压缩CSS
- js/css压缩
- JS CSS 压缩
- JS、CSS压缩
- 批量压缩JS /CSS
- js/css压缩技术
- js,css压缩打包
- Bluetooth Printer之文本打印
- 记住账号密码的input背景是黄色的,并不是很丑,但是假如你不喜欢,可以来看看
- position,display,float,overflow,margin,padding之间的相互影响
- 操作系统复习-2.1 进程与线程
- dafhkdajlfjdlskjal
- PHP动态压缩js,css
- sdut oj3915从零开始的异世界生活
- datatable自定义分页按钮位置
- 数据库关系模型有哪三类完整性约束?
- bootstrap学习18—分页
- dafhkjsdfhkla
- dafjkljdflsdjflakdsjlkf
- odl安装的一些坑
- RabbitMQ 系列