国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP生成zip壓縮包的常用方法示例

2024-05-05 00:10:59
字體:
來源:轉載
供稿:網友

本文實例講述了PHP生成zip壓縮包的常用方法。分享給大家供大家參考,具體如下:

壓縮一個文件

我們將一個文件生成一個壓縮包。

<?php$path = "c:/wamp/www/log.txt";$filename = "test.zip";$zip = new ZipArchive();$zip->open($filename,ZipArchive::CREATE);  //打開壓縮包$zip->addFile($path,basename($path));  //向壓縮包中添加文件$zip->close(); //關閉壓縮包

上述代碼將c:/wamp/www/log.txt文件壓縮生成了test.zip,并保存在當前目錄。

壓縮多個文件

壓縮多個文件,其實就是addFile執行多次,可以通過數組的遍歷來實現。

<?php$fileList = array(  "c:/wamp/www/log.txt",  "c:/wamp/www/weixin.class.php");$filename = "test.zip";$zip = new ZipArchive();$zip->open($filename,ZipArchive::CREATE);  //打開壓縮包foreach($fileList as $file){  $zip->addFile($file,basename($file));  //向壓縮包中添加文件}$zip->close(); //關閉壓縮包

壓縮一個目錄

<?phpfunction addFileToZip($path,$zip){  $handler=opendir($path); //打開當前文件夾由$path指定。  while(($filename=readdir($handler))!==false){    if($filename != "." && $filename != ".."){//文件夾文件名字為'.'和‘..',不要對他們進行操作      if(is_dir($path."/".$filename)){// 如果讀取的某個對象是文件夾,則遞歸        addFileToZip($path."/".$filename, $zip);      }else{ //將文件加入zip對象        $zip->addFile($path."/".$filename);      }    }  }  @closedir($path);}$zip=new ZipArchive();if($zip->open('rsa.zip', ZipArchive::OVERWRITE)=== TRUE){  addFileToZip('rsa/', $zip); //調用方法,對要打包的根目錄進行操作,并將ZipArchive的對象傳遞給方法  $zip->close(); //關閉處理的zip文件}

壓縮并下載zip包

我的時候,我們需要打包之后,提供下載,然后刪除壓縮包。

可以分為以下幾步:

  1. 判斷給出的路徑,是文件夾,還是文件。文件夾還需要遍歷添加文件。
  2. 設置相關文件頭,并使用readfile函數提供下載。
  3. 使用unlink函數刪除壓縮包
<?phpfunction addFileToZip($path,$zip){  $handler=opendir($path); //打開當前文件夾由$path指定。  while(($filename=readdir($handler))!==false){    if($filename != "." && $filename != ".."){//文件夾文件名字為'.'和‘..',不要對他們進行操作      if(is_dir($path."/".$filename)){// 如果讀取的某個對象是文件夾,則遞歸        addFileToZip($path."/".$filename, $zip);      }else{ //將文件加入zip對象        $zip->addFile($path."/".$filename);      }    }  }  @closedir($path);}$zip=new ZipArchive();if($zip->open('rsa.zip', ZipArchive::OVERWRITE)=== TRUE){  $path = 'rsa/';  if(is_dir($path)){ //給出文件夾,打包文件夾    addFileToZip($path, $zip);  }else if(is_array($path)){ //以數組形式給出文件路徑    foreach($path as $file){      $zip->addFile($file);    }  }else{   //只給出一個文件    $zip->addFile($path);  }  $zip->close(); //關閉處理的zip文件}

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 西峡县| 平南县| 南充市| 济源市| 琼结县| 扬中市| 齐河县| 讷河市| 永靖县| 安达市| 突泉县| 子洲县| 仙游县| 枣庄市| 彰化市| 龙口市| 全南县| 连州市| 商洛市| 商城县| 寻乌县| 西华县| 福海县| 武强县| 门头沟区| 南川市| 弥渡县| 车致| 明光市| 江山市| 缙云县| 林甸县| 保定市| 曲靖市| 清流县| 丽水市| 闵行区| 长春市| 农安县| 遂宁市| 宜昌市|