PHP小技巧之JS和CSS優(yōu)化工具M(jìn)inify的使用方法
一、實(shí)現(xiàn)合并和壓縮多個(gè)JS和CSS文件的代碼
HTML:
<link rel="stylesheet" type="text/css" href="cssmin.php?get=base,style1,style2,global&path=css/&v=20131023" />
<script type="text/javascript" src="jsmin.php?get=jquery-1.6.4.min.js,minjquery.js,minjquery.ui.js,test.js,global.js&path=js/&v=20131023"></script>
PHP:
//輸出JS
header ("Content-type:Application/x-javascript; Charset: utf-8");
if(isset($_GET)) {
$files = explode(",", $_GET['get']);
$str = '';
foreach ($files as $key => $val){
$str .= file_get_contents($_GET['path'].$val);
}
$str = str_replace("\t", "", $str); //清除空格
$str = str_replace("\r\n", "", $str);
$str = str_replace("\n", "", $str);
// 刪除單行注釋
$str = preg_replace("/\/\/\s*[a-zA-Z0-9_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/", "", $str);
// 刪除多行注釋
$str = preg_replace("/\/\*[^\/]*\*\//s", "", $str);
echo $str;
}
//輸出CSS
header ("content-type:text/css; charset: utf-8");
if(isset($_GET)) {
$files = explode(",", $_GET['get']);
$fc = '';
foreach ($files as $key => $val){
$fc .= file_get_contents($_GET['path'].$val.".css");
}
$fc = str_replace("\t", "", $fc); //清除空格
$fc = str_replace("\r\n", "", $fc);
$fc = str_replace("\n", "", $fc);
$fc = preg_replace("/\/\*[^\/]*\*\//s", "", $fc);
echo $fc;
}
只是個(gè)簡(jiǎn)單原型,沒(méi)有封裝。另外,合并后的文件記得配合緩存
二、Minify的使用方法
1、從code.google.com/p/minify/下載最新版Minify并解壓縮,將"min"文件夾連同里面的內(nèi)容一起復(fù)制到DOCUMENT_ROOT目錄下(即網(wǎng)站跟目錄)。
可以修改文件夾名"min"
2、在"min/groupsConfig.php"里配置g參數(shù)
return array(
// 'js' => array('//js/file1.js', '//js/file2.js'),
// 'css' => array('//css/file1.css', '//css/file2.css'),
);
3、在網(wǎng)頁(yè)中按照如下方式引用就可以了:
<script type="text/javascript" src="/min/g=js&20140519"></script>
后面的數(shù)字可以用更新日期來(lái)作標(biāo)志,"min"和步驟1里的名稱對(duì)應(yīng)。
4、性能優(yōu)化,請(qǐng)參考code.google.com/p/minify/wiki/CookBook
注意:
1、需要將httpd.conf里的rewrite_module模塊開(kāi)啟
2、開(kāi)發(fā)過(guò)程中,可以將調(diào)試模式開(kāi)啟,開(kāi)發(fā)完畢后再將調(diào)試模式關(guān)閉,可以利用火狐瀏覽器的firebug來(lái)查看
$min_allowDebugFlag = true
- js調(diào)試工具console.log()方法查看js代碼的執(zhí)行情況
- node.js版本管理工具n無(wú)效的原理和解決方法
- js實(shí)現(xiàn)帶關(guān)閉按鈕始終顯示在網(wǎng)頁(yè)最底部工具條的方法
- JavaScript1.6數(shù)組新特性介紹以及JQuery的幾個(gè)工具方法
- 將nodejs打包工具整合到鼠標(biāo)右鍵的方法
- js工具方法彈出蒙版
- 常用Extjs工具:Extjs.util.Format使用方法
- 一款js和css代碼壓縮工具[附JAVA環(huán)境配置方法]
- 解決http://16a.us/2.js之a(chǎn)rp欺騙的方法附專殺工具
- Angular工具方法學(xué)習(xí)
相關(guān)文章
php實(shí)現(xiàn)36進(jìn)制與10進(jìn)制轉(zhuǎn)換功能示例
這篇文章主要介紹了php實(shí)現(xiàn)36進(jìn)制與10進(jìn)制轉(zhuǎn)換功能,結(jié)合實(shí)例形式分析了php數(shù)值運(yùn)算與字符串操作的相關(guān)技巧,需要的朋友可以參考下2017-01-01php創(chuàng)建、獲取cookie及基礎(chǔ)要點(diǎn)分析
這篇文章主要介紹了php創(chuàng)建、獲取cookie及基礎(chǔ)要點(diǎn),實(shí)例分析了php操作cookie的技巧,需要的朋友可以參考下2015-01-01PHP Memcached + APC + 文件緩存封裝實(shí)現(xiàn)代碼
PHP Memcached + APC + 文件緩存封裝實(shí)現(xiàn)代碼,需要的朋友可以參考下。2010-03-03php常用數(shù)組函數(shù)實(shí)例小結(jié)
這篇文章主要介紹了php常用數(shù)組函數(shù),結(jié)合實(shí)例形式總結(jié)分析了php常用數(shù)組函數(shù)array_merge、array_slice及array_map的功能與使用技巧,需要的朋友可以參考下2016-12-12PHP has encountered an Access Violation 錯(cuò)誤的解決方法
一般是因?yàn)閑accelerator的問(wèn)題,windows下容易出現(xiàn)這個(gè)問(wèn)題。2010-01-01php使用json_decode后數(shù)字對(duì)象轉(zhuǎn)換成了科學(xué)計(jì)數(shù)法的解決方法
這篇文章主要介紹了php使用json_decode后數(shù)字對(duì)象轉(zhuǎn)換成了科學(xué)計(jì)數(shù)法的解決方法,涉及php操作json格式數(shù)據(jù)與數(shù)值轉(zhuǎn)換相關(guān)技巧,需要的朋友可以參考下2017-02-02數(shù)據(jù)結(jié)構(gòu)之利用PHP實(shí)現(xiàn)二分搜索樹(shù)
這篇文章主要給大家介紹了關(guān)于數(shù)據(jù)結(jié)構(gòu)之利用PHP實(shí)現(xiàn)二分搜索樹(shù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10