本文实例讲述了PHP实现动态压缩js与css文件的方法。分享给大家供大家参考,具体如下:

正式发布产品时,我们希望将项目里的js,css合并压缩,以减少http请求、防止轻易查看源代码。

使用

只需要在头部引入一下代码即可:

demo

//定义需要压缩的文件

$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));

?>

这段代码会在指定的目录(例如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下载:

gkralik/php-uglifyjs

https://github.com/gkralik/php-uglifyjs

/**

* 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.

*

*/

PS:这里再为大家推荐几款相似的在线工具供大家参考:

JavaScript压缩/格式化/加密工具:http://tools.jb51.net/code/jscompress

在线CSS代码压缩、格式化工具:http://tools.jb51.net/code/css

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php文件操作总结》、《PHP目录操作技巧汇总》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》及《php程序设计算法总结》

希望本文所述对大家PHP程序设计有所帮助。

php 压缩js css文件,PHP实现动态压缩js与css文件的方法相关推荐

  1. vue动态切换css文件_vue在线动态切换主题色方案

    主要原理是利用webpack插件webpack-theme-color-replacer提取相关颜色css然后根据配置动态生成替换的css 具体实现步骤如下: 1.添加webpack插件,新建文件we ...

  2. asp.net 改变css,使用ASP.NET动态设置CSS值

    在图像服务器上保留CSS文件是一个选项吗?如果可能的话,您可以使所有图像引用相对,然后只需要更新到CSS文件的链接. style.css" /> 如果仍要动态发送或生成CSS文件: C ...

  3. php 压缩html css,PHP实现动态压缩js与css文件的方法

    这篇文章主要介绍了关于PHP实现动态压缩js与css文件的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 本文实例讲述了PHP实现动态压缩js与css文件的方法.分享给大家供大家参 ...

  4. php动态引入js文件路径问题,JavaScript_动态加载外部css或js文件,原理解析:第一步:使用dom创 - phpStudy...

    原理解析:第一步:使用dom创建 应用:1.提高代码的复用,减少代码量:2.添加一个javascript控制器和 session可以实现动态改变页面样式:3.由于是页面是从上到下依次加载文件的,并且边 ...

  5. asp.net后台代码动态添加JS文件和css文件的引用

    首先添加命名空间 using System.Web.UI.HtmlControls; 代码动态添加css文件的引用 HtmlGenericControl myCss = new HtmlGeneric ...

  6. php 使用压缩css文件,PHP-使用GZIP压缩静态CSS文件

    所以我有一个CSS文件style.css.在同一目录中,我有images /文件夹. 如何制作一个从另一个文件夹压缩style.css的脚本? 现在我有这个: if(isset($_GET['css' ...

  7. webpack:js、css、es6装载与压缩配置-学习笔记

    文章目录 webpack:js.css.es6装载与压缩配置-学习笔记 css文件打包 loader执行顺序 loader与plugin区别 less css抽取 js,css压缩处理 依赖包降级处理 ...

  8. gulp压缩css文件夹,使用 gulp 压缩 CSS

    压缩 css 代码可降低 css 文件大小,提高页面打开速度. 我们接着将规律转换为 gulp 代码 ## [](https://github.com/nimojs/gulp-book/blob/ma ...

  9. webpack配置:less/sass文件打包和分离、自动处理css前缀、消除未使用的css及完整的webpack.config.js文件...

    一.less文件打包和分离 1.要使用less,首先使用npm安装less服务:还需要安装Less-loader用来打包使用. npm install less --save-dev npm inst ...

最新文章

  1. 【青少年编程】【三级】 魔术表演“开花”
  2. 点对点信道互连以太网实验_以太网防雷器通讯参数测试(二)——防雷器对高速链路影响的参数...
  3. 谨记这10条,就能给别人留下好印象?
  4. [翻译]XNA 3.0 Game Programming Recipes之forty-seven
  5. 2.这就是搜索引擎:核心技术详解 --- 网络爬虫
  6. 「图像处理」C#+AForge.Net+DlibDotNet实现人脸识别
  7. 笔记-软考高项-错题笔记汇总3
  8. ubuntu下安裝搜狗輸入法
  9. 河南分销系统开发|三级分销跟二级分销的区别是什么?
  10. 扇贝编程python学习笔记-基础篇4
  11. 无线技术之争谁将胜出 WiFi、蓝牙还是NFC
  12. 【宋红康 MySQL数据库 】【高级篇】【17】MySQL事务日志:redo、undo
  13. Python 自动化测试怎么做?
  14. 百度地图自定义吹出框
  15. c语言中 %d与%2d与%02d的区别在哪里
  16. 京东数科七层负载 | HTTPS硬件加速 (Freescale加速卡篇)
  17. java线段绕原点旋转的方法,将点绕坐标原点顺时针旋转得到点的坐标为___________。-九年级数学-魔方格...
  18. 一个典型程序员的IT 7年
  19. 职场3道坎:年薪30万、50万、100万
  20. Btrfs介绍与使用

热门文章

  1. Python暴力破解凯撒加密的文本
  2. 计算机图形学笔记 (第一周)
  3. 相位延迟和群延迟的区别
  4. HTML引用外部css 、js的路径
  5. lisp 河道水面线计算_鹤岗河道用铸铁轻型闸门厂家
  6. zynq+linux固化程序,MiZ702学习笔记6——ZYNQ如何固化程序
  7. 计算机普通用户禁止修改c盘,保护C盘数据win7中设置禁止修改C盘文件的方法
  8. vue保存页面的值_vue前端页面跳转参数传递及存储
  9. qml入门学习(八):通过loader对象动态加载和移除组件
  10. QT每日一练day12:QDailog