1. 程式人生 > 其它 >PhalApi-Zip--壓縮檔案處理類

PhalApi-Zip--壓縮檔案處理類

#PhalApi-Zip -- 壓縮檔案處理類

##前言

這是筆者在工作中,同事找到的一個比較不錯的檔案壓縮類,也經過了實際的使用很不錯所以分享處理,特此鳴謝:@牧魚人

附上:

官網地址:http://www.phalapi.net/

開源中國Git地址:http://git.oschina.net/dogstar/PhalApi/tree/release

開源中國拓展Git地址:http://git.oschina.net/dogstar/PhalApi-Library

##1. 安裝使用

此擴充套件只需要簡單的把檔案放到Library目錄下即可使用使用方法如下:

 $zip = new Zip_Lite();

遍歷指定資料夾

 $zip  = new Zip_Lite();
 $filelist = $zip->visitFile(資料夾路徑);
 print "當前資料夾的檔案:<p>rn";
 foreach($filelist as $file)
     printf("%s<br>rn", $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&nbsp;&nbsp;&nbsp;&nbsp;解壓檔案:%d&nbsp;&nbsp;&nbsp;&nbsp;失敗:%d<br>rn", $dircount, $filecount, count($failfiles));
if(count($failfiles) > 0){
    foreach($failfiles as $file){
        printf("&middot;%s<br>rn", $file);
    }
}

獲取被壓縮檔案的資訊

$zip = new Zip_Lite();
$array = $zip->GetZipInnerFilesInfo(ZIP壓縮檔名);
for($i=0; $i<count($array); $i++) {
    printf("<b>&middot;%s</b><br>rn", $array[$i][filename]);
    foreach($array[$i] as $key => $value)
       printf("%s => %s<br>rn", $key, $value);
    print "rn<p>------------------------------------<p>rnrn";
}

##2. 總結

希望此拓展能夠給大家帶來方便以及實用!

注:筆者能力有限有說的不對的地方希望大家能夠指出,也希望多多交流!

官網QQ交流群:421032344 歡迎大家的加入!