100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > php 压缩js css文件 PHP实现动态压缩js与css文件的方法

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

时间:2019-08-15 15:06:53

相关推荐

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

本文实例讲述了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

/gkralik/php-uglifyjs

/**

* 9 April . version 1.1

*

* This is the php version of the Dean Edwards JavaScript's Packer,

* Based on :

*

* ParseMaster, version 1.0.2 (-08-19) Copyright , 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 (-08-19) Copyright -, Dean Edwards

*

* License: /licenses/LGPL/2.1/

*

* Ported to PHP by Nicolas Martin.

*

* ----------------------------------------------------------------------

* changelog:

* 1.1 : correct a bug, '\0' packed then unpacked becomes '\'.

* ----------------------------------------------------------------------

*

* Changes:

* -08-28: grkalik: change class for composer support. no functionality change.

*

*/

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

JavaScript压缩/格式化/加密工具:/code/jscompress

在线CSS代码压缩、格式化工具:/code/css

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。