濮阳杆衣贸易有限公司

主頁 > 知識庫 > PHP實現動態(tài)壓縮js與css文件的方法

PHP實現動態(tài)壓縮js與css文件的方法

熱門標簽:地圖標注專員怎么樣 四川保險智能外呼系統(tǒng)供應商 長沙做地圖標注公司 寧波外呼營銷系統(tǒng) 房產中介用的是什么外呼系統(tǒng) 遼寧ai電銷機器人價格 上海做外呼線路的通信公司 電話機器人銷售主要負責什么 福建銀行智能外呼系統(tǒng)價格

本文實例講述了PHP實現動態(tài)壓縮js與css文件的方法。分享給大家供大家參考,具體如下:

正式發(fā)布產品時,我們希望將項目里的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>
!--下面可以繼續(xù)放不能壓縮或者不想壓縮的文件-->
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文件一定要符合規(guī)范。例如一定要加分號。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實現壓縮多個CSS與JS文件的方法
  • php壓縮HTML函數輕松實現壓縮html/js/Css及注意事項
  • 將PHP程序中返回的JSON格式數據用gzip壓縮輸出的方法
  • php使用gzip壓縮傳輸js和css文件的方法
  • php實現壓縮合并js的方法【附demo源碼下載】
  • php壓縮多個CSS為一個css的代碼并緩存
  • php簡單壓縮css樣式示例

標簽:常德 宿遷 宜春 工商登記 澳門 佛山 延安 深圳

巨人網絡通訊聲明:本文標題《PHP實現動態(tài)壓縮js與css文件的方法》,本文關鍵詞  PHP,實現,動態(tài),壓縮,與,css,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP實現動態(tài)壓縮js與css文件的方法》相關的同類信息!
  • 本頁收集關于PHP實現動態(tài)壓縮js與css文件的方法的相關信息資訊供網民參考!
  • 推薦文章
    延长县| 英德市| 陆丰市| 宣化县| 伽师县| 大埔区| 云南省| 汉源县| 驻马店市| 武宁县| 抚顺市| 白河县| 唐河县| 那坡县| 东乡| 海阳市| 壶关县| 崇左市| 同德县| 清水河县| 沙坪坝区| 陈巴尔虎旗| 修文县| 沧州市| 尉犁县| 区。| 邛崃市| 增城市| 沛县| 双城市| 丰都县| 金门县| 孟村| 邓州市| 鲜城| 西华县| 沙田区| 监利县| 鄂伦春自治旗| 张掖市| 集安市|