国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

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

2024-05-05 00:03:30
字體:
來源:轉載
供稿:網友

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

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


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 七台河市| 修水县| 元阳县| 乳源| 江都市| 阳山县| 嘉黎县| 南木林县| 双江| 浦东新区| 阿荣旗| 弥渡县| 马鞍山市| 吴忠市| 连城县| 澜沧| 宁国市| 班玛县| 永顺县| 墨脱县| 焉耆| 富宁县| 乌兰察布市| 班戈县| 三台县| 吉安市| 岳普湖县| 北宁市| 崇州市| 习水县| 万安县| 阿瓦提县| 宜川县| 达拉特旗| 福贡县| 吴堡县| 峨眉山市| 六枝特区| 武汉市| 白朗县| 从化市|