国产探花免费观看_亚洲丰满少妇自慰呻吟_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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 玉龙| 肃南| 无锡市| 咸阳市| 章丘市| 容城县| 商洛市| 鲁甸县| 黔江区| 乌兰县| 抚松县| 黄梅县| 文安县| 江油市| 同仁县| 庐江县| 康乐县| 木里| 凭祥市| 山丹县| 长子县| 新源县| 金沙县| 迁西县| 当阳市| 株洲市| 延川县| 江西省| 华坪县| 清丰县| 页游| 盖州市| 伊春市| 香河县| 古浪县| 溧水县| 云南省| 德江县| 辛集市| 临猗县| 苍南县|