#PhalApi-Zip -- 壓縮文件處理類git
##前言api
這是筆者在工做中,同事找到的一個比較不錯的文件壓縮類,也通過了實際的使用很不錯因此分享處理,特此鳴謝:@牧魚人服務器
附上:.net
官網地址:http://www.phalapi.net/code
開源中國Git地址:http://git.oschina.net/dogstar/PhalApi/tree/releaseip
開源中國拓展Git地址:http://git.oschina.net/dogstar/PhalApi-Libraryget
##1. 安裝使用it
此擴展只須要簡單的把文件放到Library目錄下便可使用使用方法以下:擴展
$zip = new Zip_Lite();
遍歷指定文件夾foreach
$zip = new Zip_Lite(); $filelist = $zip->visitFile(文件夾路徑); print "當前文件夾的文件:<p>\r\n"; foreach($filelist as $file) printf("%s<br>\r\n", $file);
壓縮到服務器
$zip = new Zip_Lite(); $zip->Zip("需壓縮的文件所在目錄", "ZIP壓縮文件名");
壓縮並直接下載
$zip = new Zip_Lite(); $zip->ZipAndDownload("需壓縮的文件所在目錄");
解壓文件
$zip = new Zip_Lite(); $zipfile = "ZIP壓縮文件名"; $savepath = "解壓縮目錄名"; $zipfile = $unzipfile; $savepath = $unziptarget; $array = $zip->GetZipInnerFilesInfo($zipfile); $filecount = 0; $dircount = 0; $failfiles = array(); set_time_limit(0); // 修改成不限制超時時間(默認爲30秒) for($i=0; $i<count($array); $i++) { if($array[$i][folder] == 0){ if($zip->unZip($zipfile, $savepath, $i) > 0){ $filecount++; }else{ $failfiles[] = $array[$i][filename]; } }else{ $dircount++; } } set_time_limit(30); printf("文件夾:%d 解壓文件:%d 失敗:%d<br>\r\n", $dircount, $filecount, count($failfiles)); if(count($failfiles) > 0){ foreach($failfiles as $file){ printf("·%s<br>\r\n", $file); } }
獲取被壓縮文件的信息
$zip = new Zip_Lite(); $array = $zip->GetZipInnerFilesInfo(ZIP壓縮文件名); for($i=0; $i<count($array); $i++) { printf("<b>·%s</b><br>\r\n", $array[$i][filename]); foreach($array[$i] as $key => $value) printf("%s => %s<br>\r\n", $key, $value); print "\r\n<p>------------------------------------<p>\r\n\r\n"; }
##2. 總結
但願此拓展可以給你們帶來方便以及實用!
注:筆者能力有限有說的不對的地方但願你們可以指出,也但願多多交流!
官網QQ交流羣:421032344 歡迎你們的加入!