PhalApi-Zip--壓縮檔案處理類
阿新 • • 發佈:2022-05-02
#PhalApi-Zip -- 壓縮檔案處理類
##前言
這是筆者在工作中,同事找到的一個比較不錯的檔案壓縮類,也經過了實際的使用很不錯所以分享處理,特此鳴謝:@牧魚人
附上:
開源中國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 解壓檔案:%d 失敗:%d<br>rn", $dircount, $filecount, count($failfiles)); if(count($failfiles) > 0){ foreach($failfiles as $file){ printf("·%s<br>rn", $file); } }
獲取被壓縮檔案的資訊
$zip = new Zip_Lite();
$array = $zip->GetZipInnerFilesInfo(ZIP壓縮檔名);
for($i=0; $i<count($array); $i++) {
printf("<b>·%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 歡迎大家的加入!