一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP實現動態壓縮js與css文件的方法

PHP實現動態壓縮js與css文件的方法

2019-10-09 15:12飛鴻影~ PHP教程

這篇文章主要介紹了PHP實現動態壓縮js與css文件的方法,涉及php文件讀寫及字符串替換等相關操作技巧,需要的朋友可以參考下

本文實例講述了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.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.
 *
 */

 

希望本文所述對大家PHP程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 动漫美女人物被黄漫小说 | 九九热在线观看视频 | 成人影院在线观看免费 | 国产亚洲欧美在线中文bt天堂网 | 亚洲国产五月综合网 | 午夜电影三级还珠格格 | 欧美日韩中文字幕一区二区高清 | 四虎国产精品免费入口 | 51国产午夜精品免费视频 | 亚洲国产欧美在线人网站 | 日本 在线观看 | 热穴高校 | 四虎国产精品免费久久久 | 91精品国产高清久久久久久91 | 亚洲精品国产成人 | 欧美亚洲国产综合在线 | 国产精品亚洲午夜不卡 | 91av爱爱| 无颜之月5集全免费看无删除 | 天堂avav| 无人区乱码区1卡2卡三卡在线 | 精品一区二区三区免费站 | 小辣椒精品福利视频导航 | 给我免费观看的视频在线播放 | 国内精品九一在线播放 | 超爽人人做人人爽 | 乌克兰xxxxx 我要色色网 | 91在线视频免费观看 | 暗卫调教女主肉高h | 天天干夜夜添 | 青草青青在线 | 欧美日韩视频在线第一区二区三区 | 深夜免费在线视频 | 欧美xxxxx性 欧美xxxbrazzers | 黑人好大好硬好深好爽想要h | 日本日日黄 | 狠狠色综合久久婷婷色天使 | 四虎在线视频免费观看 | 2018高清国产一道国产 | 69pao强力打造免费高速 | 妇女澡堂淋浴性 |