本文實例講述了Yii2框架數據驗證操作。分享給大家供大家參考,具體如下:一、場景什么情況下需要使用場景呢?當一個模型需要在不同情境中使用時,若不同情境下需要的數據表字段和數據驗證規則有所不同,則需要定義......
以下是【金聰采編】分享的內容全文:
以下是【金聰采編】分享的內容全文:
本文實例講述了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. * */
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程序設計有所幫助。
金聰線報提示:[ Yii2框架數據驗證操作實例詳解 ] 僅為會員分享,分享目的如下:
1.軟件源碼推廣展示:目的展示軟件相關功能,接收技術學習者測試、測評;
2.教程課程信息展示:展示課程信息,傳授課程各階段內容;
3.設計素材圖片展示:展示素材設計理念、思維方式、傳播設計理念;
4.福利優惠信息展示:分享各類最新的福利信息,各種優惠信息展示;
以上分享目的僅供學習、參考使用,請勿用于其他用途,如果想商業使用或者代理,請自行聯系版權方獲取授權。任何未獲取授權的商業使用與本站無關,請自行承擔相應責任。
本站不存儲任何資源文件,敬請周知!
本網站采用 BY-NC-SA 協議進行授權 轉載請注明原文鏈接:Yii2框架數據驗證操作實例詳解
1.軟件源碼推廣展示:目的展示軟件相關功能,接收技術學習者測試、測評;
2.教程課程信息展示:展示課程信息,傳授課程各階段內容;
3.設計素材圖片展示:展示素材設計理念、思維方式、傳播設計理念;
4.福利優惠信息展示:分享各類最新的福利信息,各種優惠信息展示;
以上分享目的僅供學習、參考使用,請勿用于其他用途,如果想商業使用或者代理,請自行聯系版權方獲取授權。任何未獲取授權的商業使用與本站無關,請自行承擔相應責任。
本站不存儲任何資源文件,敬請周知!
此資源僅供個人學習、研究使用,禁止非法轉播或商業用途,請在獲取后24小時內刪除,如果你覺得滿意,請尋求購買正版或獲取授權!
如果您認為本頁信息內容侵犯了您的相關權益(包含但不限于:著作權、首發權、隱私權等權利),或者您認為自己是此信息的權利人但是此信息不是自己發布的,可以直接版權舉報投訴,我們會根據網站注冊協議、資源分享協議等協議處理,以保護您的合法權益。
免責申明:本站僅提供學習的平臺,所有資料均來自于網絡分享線索,版權歸原創者所有!本站不提供任何保證,并不承擔任何法律責任,如果對您的版權或者利益造成損害,請提供相應的資質證明,我們將于3個工作日內予以處理。版權申訴相關說明如果您認為本頁信息內容侵犯了您的相關權益(包含但不限于:著作權、首發權、隱私權等權利),或者您認為自己是此信息的權利人但是此信息不是自己發布的,可以直接版權舉報投訴,我們會根據網站注冊協議、資源分享協議等協議處理,以保護您的合法權益。
本網站采用 BY-NC-SA 協議進行授權 轉載請注明原文鏈接:Yii2框架數據驗證操作實例詳解

侵權舉報/版權申訴



