• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP动态压缩js与css文件步骤详解

php 搞代码 3年前 (2022-01-22) 28次浏览 已收录 0个评论

这次给2本文来源gao*daima.com搞@代#码&网6

搞gaodaima代码

大家带来PHP动态压缩js与css文件步骤详解,PHP动态压缩js与css文件的注意事项有哪些,下面就是实战案例,一起来看一下。

正式发布产品时,我们希望将项目里的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 ?>" rel="external nofollow" ><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.css7c10211f113f3175489196d336d67734.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. * */

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP动态压缩js与css文件步骤详解
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址