亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php ZipArchive壓縮函數詳解實例

2024-09-04 11:49:51
字體:
來源:轉載
供稿:網友

在php中生成zip文件我們只要使用一個php zip壓縮ZipArchive函數就可以了,下面小編來給大家總結兩個實現一個是利用ZipArchive生成zip,另一個壓縮文件夾下所有文件.

用ZipArchive壓縮文件,這個是php的擴展類,自php5.2版本以后就已經支持這個擴展,如果你在使用的時候出現錯誤,查看下php.ini里面的extension=php_zip.dll前面的分號有沒有去掉,然后再重啟Apache這樣才能使用這個類庫。

例1、生成zip 壓縮文件,代碼如下:

  1. /* 生成zip 壓縮文件 */ 
  2. function create_zip($files = array(),$destination = '',$overwrite = false) {  
  3.     //if the zip file already exists and overwrite is false, return false  
  4.     if(file_exists($destination) && !$overwrite) { return false; }  
  5.     //vars  
  6.     $valid_files = array();  
  7.     //if files were passed in...  
  8.     if(is_array($files)) {  
  9.         //cycle through each file  
  10.         foreach($files as $file) {  
  11.             //make sure the file exists  
  12.             if(file_exists($file)) {  
  13.                 $valid_files[] = $file;  
  14.             }  
  15.         }  
  16.     }  
  17.     //if we have good files...  
  18.     if(count($valid_files)) {  
  19.         //create the archive  
  20.         $zip = new ZipArchive();  
  21.         if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {  
  22.             return false;  
  23.         }  
  24.         //add the files  
  25.         foreach($valid_files as $file) {  
  26.             $file_info_arrpathinfo($file);  
  27.             $zip->addFile($file,$file_info_arr['basename']);//去掉層級目錄  
  28.         }  
  29.         //debug  
  30.         //echo 'The zip archive contains ',$zip->numFiles,' files with a status of ',$zip->status;  
  31.  
  32.         //close the zip -- done!  
  33.         $zip->close();  
  34.  
  35.         //check to make sure the file exists  
  36.         return file_exists($destination);  
  37.     }  
  38.     else 
  39.     {  
  40.         return false;  
  41.     }  
  42. }  
  43.  
  44. define('ROOTPATH',dirname ( __FILE__ )); //網站路徑  
  45.  
  46. $files_to_zip = array(  
  47.     ROOTPATH.DIRECTORY_SEPARATOR.'PHP+jQuery+Cookbook.pdf',  
  48.     ROOTPATH.DIRECTORY_SEPARATOR.'TurboListerZeroTemplate.csv' 
  49. );  
  50. //if true, good; if false, zip creation failed  
  51. $filename='my-archive.zip';  
  52. $result = create_zip($files_to_zip,$filename); 

例2 、壓縮文件夾下面的所有文件,代碼如下:

  1. <?php  
  2. /*  
  3. php zip壓縮文件夾下面的所有文件  
  4. */ 
  5. class HZip  
  6. {  
  7.   /**  
  8.    * 添加文件和子目錄的文件到zip文件  
  9.    * @param string $folder  
  10.    * @param ZipArchive $zipFile  
  11.    * @param int $exclusiveLength Number of text to be exclusived from the file path.  
  12.    */ 
  13.   private static function folderToZip($folder, &$zipFile$exclusiveLength) {  
  14.     $handle = opendir($folder);  
  15.     while (false !== $f = readdir($handle)) {  
  16.       if ($f != '.' && $f != '..') {  
  17.         $filePath = "$folder/$f";  
  18.         // Remove prefix from file path before add to zip.  
  19.         $localPath = substr($filePath$exclusiveLength);  
  20.         if (is_file($filePath)) {  
  21.           $zipFile->addFile($filePath$localPath);  
  22.         } elseif (is_dir($filePath)) {  
  23.           // 添加子文件夾  
  24.           $zipFile->addEmptyDir($localPath);  
  25.           self::folderToZip($filePath$zipFile$exclusiveLength);  
  26.         }  
  27.       }  
  28.     }  
  29.     closedir($handle);  
  30.   }  
  31.  
  32.   /**  
  33.    * Zip a folder (include itself).  
  34.    * Usage:  
  35.    *   HZip::zipDir('/path/to/sourceDir', '/path/to/out.zip');  
  36.    *  
  37.    * @param string $sourcePath Path of directory to be zip.  
  38.    * @param string $outZipPath Path of output zip file.  
  39.    */ 
  40.   public static function zipDir($sourcePath$outZipPath)  
  41.   {  
  42.     $pathInfo = pathInfo($sourcePath);  
  43.     $parentPath = $pathInfo['dirname'];  
  44.     $dirName = $pathInfo['basename'];  
  45.     $sourcePath=$parentPath.'/'.$dirName;//防止傳遞'folder' 文件夾產生bug  
  46.     $z = new ZipArchive();  
  47.     $z->open($outZipPath, ZIPARCHIVE::CREATE);//建立zip文件  
  48.     $z->addEmptyDir($dirName);//建立文件夾  
  49.     self::folderToZip($sourcePath$zstrlen("$parentPath/"));  
  50.     $z->close();  
  51.   }  
  52. }  
  53.  
  54. //使用方法  
  55. HZip::zipDir('yourlife''yourlife.zip');  
  56. ?> 

1.ZipArchive::addEmptyDir

添加一個新的文件目錄

2.ZipArchive::addFile

將文件添加到指定zip壓縮包中。

3.ZipArchive::addFromString

添加的文件同時將內容添加進去

4.ZipArchive::close

關閉ziparchive

5.ZipArchive::extractTo

將壓縮包解壓

6.ZipArchive::open

打開一個zip壓縮包

7.ZipArchive::getStatusString

返回壓縮時的狀態內容,包括錯誤信息,壓縮信息等等

8.ZipArchive::deleteIndex

刪除壓縮包中的某一個文件,如:deleteIndex(0)刪除第一個文件

9.ZipArchive::deleteName

刪除壓縮包中的某一個文件名稱,同時也將文件刪除。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产欧美一区二区三区在线看| 91系列在线观看| 欧美日韩一区免费| 日韩av免费在线观看| 欧美性生活大片免费观看网址| 久久精品成人欧美大片| 欧美视频在线观看免费| 色吧影院999| 国产免费久久av| 欧美一区二三区| 亚洲大胆美女视频| 欧美孕妇性xx| 欧美成人午夜剧场免费观看| 欧美在线视频观看免费网站| 亚洲精品成人免费| 欧美在线视频一二三| 狠狠躁夜夜躁人人爽超碰91| 国产高清视频一区三区| 欧美多人乱p欧美4p久久| 一本色道久久88综合日韩精品| 国产精品爱久久久久久久| 久久久久久噜噜噜久久久精品| 九九热r在线视频精品| 中文字幕亚洲国产| 精品久久久久久久久久久久| 欧美日韩一区二区三区| 欧美精品18videosex性欧美| 亚洲精品国产精品久久清纯直播| 国产亚洲精品综合一区91| 亚洲黄色在线观看| 国内免费久久久久久久久久久| 日韩福利视频在线观看| 午夜精品99久久免费| 精品亚洲va在线va天堂资源站| 久久久久久久亚洲精品| 日韩国产高清污视频在线观看| 亚洲欧美激情一区| 欧洲美女免费图片一区| 欧美国产日本在线| 中文字幕国产日韩| 欧美人与性动交| 中文字幕日韩欧美精品在线观看| 亚洲欧美日韩精品久久奇米色影视| 国产精品视频永久免费播放| 国产中文字幕91| 91精品国产沙发| 欧美亚洲视频一区二区| 国产日韩亚洲欧美| 91亚洲精华国产精华| 日本欧美黄网站| 亚洲区免费影片| 精品国产一区二区三区久久久| 欧美亚洲午夜视频在线观看| 日韩在线视频免费观看| 精品国产31久久久久久| 久久精品视频va| 成人444kkkk在线观看| 成人黄色中文字幕| 久久久久久久97| 欧美巨乳在线观看| 久久久欧美一区二区| 日韩国产高清污视频在线观看| 成人久久18免费网站图片| 岛国精品视频在线播放| 欧美精品一区二区免费| 欧美日韩在线观看视频小说| 日韩亚洲欧美中文在线| 欧美激情欧美激情在线五月| 97视频网站入口| 91高清免费视频| 日韩欧美成人精品| 欧美日韩国产一中文字不卡| 久久精品精品电影网| 国产精品网红福利| 亚洲欧美在线第一页| 日本久久久久久久久久久| 亚洲第一视频在线观看| 91嫩草在线视频| 欧美电影院免费观看| 欧美裸体男粗大视频在线观看| 国产精品久久999| 欧美成人免费全部观看天天性色| 欧美黑人国产人伦爽爽爽| 午夜精品蜜臀一区二区三区免费| 欧美肥臀大乳一区二区免费视频| 激情懂色av一区av二区av| 日韩av在线免播放器| 亚洲人在线视频| 亚洲精品久久久久久久久久久久久| 国产一区二区三区在线播放免费观看| 欧美激情一区二区久久久| 亚洲成人激情小说| 在线日韩日本国产亚洲| 欧美电影在线播放| 国产成人精品一区二区在线| 欧美裸身视频免费观看| 国产精品ⅴa在线观看h| 欧美日韩成人精品| 国产91色在线免费| 日韩hd视频在线观看| 97在线视频免费播放| 精品久久久中文| www.色综合| 亚洲人高潮女人毛茸茸| 欧美日韩中国免费专区在线看| 亚洲国产日韩一区| 91色在线视频| 欧美性xxxxx极品| 欧美风情在线观看| 欧美猛男性生活免费| 欧美午夜精品久久久久久人妖| 色午夜这里只有精品| 国产97人人超碰caoprom| 久久久97精品| 在线精品高清中文字幕| 在线看国产精品| 久久久国产91| 亚洲欧美在线x视频| 国产亚洲欧洲高清一区| 日韩中文在线中文网三级| 久久精品国产免费观看| 欧美激情精品在线| 一区二区三区四区在线观看视频| 中文字幕亚洲无线码在线一区| 国产精品青草久久久久福利99| 日韩欧美亚洲国产一区| 日本道色综合久久影院| 国产69久久精品成人| 91高清视频在线免费观看| 成人妇女淫片aaaa视频| 日韩中文字幕免费| 成人福利视频网| 欧美专区日韩视频| 亚洲欧洲国产精品| 中文字幕日韩欧美在线| 欧美一区在线直播| 国产一区深夜福利| 亚洲欧美日韩中文在线制服| 91免费看国产| 亚洲91精品在线观看| 91最新国产视频| 成人日韩av在线| 亚洲视频在线观看网站| 91美女高潮出水| 国产精品都在这里| 在线看福利67194| 国产精品激情av在线播放| 欧美激情xxxxx| 国产精品小说在线| 日韩欧亚中文在线| 91精品久久久久久久久青青| 国产精品久久一区| 伦理中文字幕亚洲| 国产成人自拍视频在线观看| 91牛牛免费视频| 成人免费淫片aa视频免费| 97在线视频观看| 国产日韩精品在线| 亚洲精品视频在线观看视频| 精品国产一区二区三区久久| 欧美专区在线观看| 岛国视频午夜一区免费在线观看| 亚洲一区二区三区xxx视频| 日韩精品黄色网|