首頁 後端開發 php教程 php ZipArchive压缩函数详解实例_PHP教程

php ZipArchive压缩函数详解实例_PHP教程

Jul 13, 2016 am 10:25 AM
zip

用ZipArchive压缩文件,这个是php的扩展类,自php5.2版本以后就已经支持这个扩展,如果你在使用的时候出现错误,查看下php.ini里面的extension=php_zip.dll前面的分号有没有去掉,然后再重启Apache这样才能使用这个类库。
例1、生成zip 压缩文件

复制代码 代码如下:

/* 生成zip 压缩文件 */
function create_zip($files = array(),$destination = '',$overwrite = false) {
    //if the zip file already exists and overwrite is false, return false
    if(file_exists($destination) && !$overwrite) { return false; }
    //vars
    $valid_files = array();
    //if files were passed in...
    if(is_array($files)) {
        //cycle through each file
        foreach($files as $file) {
            //make sure the file exists
            if(file_exists($file)) {
                $valid_files[] = $file;
            }
        }
    }
    //if we have good files...
    if(count($valid_files)) {
        //create the archive
        $zip = new ZipArchive();
        if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
            return false;
        }
        //add the files
        foreach($valid_files as $file) {
            $file_info_arr= pathinfo($file);
            $zip->addFile($file,$file_info_arr['basename']);//去掉层级目录
        }
        //debug
        //echo 'The zip archive contains ',$zip->numFiles,' files with a status of ',$zip->status;

        //close the zip -- done!
        $zip->close();

        //check to make sure the file exists
        return file_exists($destination);
    }
    else
    {
        return false;
    }
}

define('ROOTPATH',dirname ( __FILE__ )); //网站路径

$files_to_zip = array(
    ROOTPATH.DIRECTORY_SEPARATOR.'PHP+jQuery+Cookbook.pdf',
    ROOTPATH.DIRECTORY_SEPARATOR.'TurboListerZeroTemplate.csv'
);
//if true, good; if false, zip creation failed
$filename='my-archive.zip';
$result = create_zip($files_to_zip,$filename);
 

例2 、压缩文件夹下面的所有文
复制代码 代码如下:

/*
php zip压缩文件夹下面的所有文件
*/
class HZip
{
  /**
   * 添加文件和子目录的文件到zip文件
   * @param string $folder
   * @param ZipArchive $zipFile
   * @param int $exclusiveLength Number of text to be exclusived from the file path.
   */
  private static function folderToZip($folder, &$zipFile, $exclusiveLength) {
    $handle = opendir($folder);
    while (false !== $f = readdir($handle)) {
      if ($f != '.' && $f != '..') {
        $filePath = "$folder/$f";
        // Remove prefix from file path before add to zip.
        $localPath = substr($filePath, $exclusiveLength);
        if (is_file($filePath)) {
          $zipFile->addFile($filePath, $localPath);
        } elseif (is_dir($filePath)) {
          // 添加子文件夹
          $zipFile->addEmptyDir($localPath);
          self::folderToZip($filePath, $zipFile, $exclusiveLength);
        }
      }
    }
    closedir($handle);
  }

  /**
   * Zip a folder (include itself).
   * Usage:
   *   HZip::zipDir('/path/to/sourceDir', '/path/to/out.zip');
   *
   * @param string $sourcePath Path of directory to be zip.
   * @param string $outZipPath Path of output zip file.
   */
  public static function zipDir($sourcePath, $outZipPath)
  {
    $pathInfo = pathInfo($sourcePath);
    $parentPath = $pathInfo['dirname'];
    $dirName = $pathInfo['basename'];
    $sourcePath=$parentPath.'/'.$dirName;//防止传递'folder' 文件夹产生bug
    $z = new ZipArchive();
    $z->open($outZipPath, ZIPARCHIVE::CREATE);//建立zip文件
    $z->addEmptyDir($dirName);//建立文件夹
    self::folderToZip($sourcePath, $z, strlen("$parentPath/"));
    $z->close();
  }
}

//使用方法
HZip::zipDir('yourlife', 'yourlife.zip');
?>
 

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
删除压缩包中的某一个文件名称,同时也将文件删除。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/825095.htmlTechArticle用ZipArchive压缩文件,这个是php的扩展类,自php5.2版本以后就已经支持这个扩展,如果你在使用的时候出现错误,查看下php.ini里面的extensi...
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

HTML 檔案壓縮成 ZIP 的最佳指南 HTML 檔案壓縮成 ZIP 的最佳指南 Apr 09, 2024 pm 04:09 PM

壓縮HTML檔成ZIP可提高頁面載入速度。方法包括:使用線上工具(如FileOptimizer、TinyPNG)使用命令列工具(如gzip、7-zip)使用Node.js腳本(使用zlib模組)

centos7下解壓縮檔案指令(zip)詳解 centos7下解壓縮檔案指令(zip)詳解 Jan 07, 2024 pm 06:30 PM

1.壓縮資料夾為zip檔[root@cgls]#zip-rmydata.zipmydata2.把mydata.zip解壓縮到mydatabak目錄裡面[root@cgls]#unzipmydata.zip-dmydatabak3.mydata01資料夾和mydata02.txt mydata.zip[root@cgls]#zipmydata.zipmydata01mydata02.txt4.直接解壓縮mydata.zipmydata.zipmydata01mydata02.txt4.直接解壓縮mydata.zip檔[root@cgls]#unzipmydata.zip5.查看myd

linux壓縮zip指令怎麼用 linux壓縮zip指令怎麼用 Oct 08, 2023 pm 01:25 PM

zip指令是Linux系統中一個非常有用的壓縮工具。透過使用zip指令,您可以輕鬆地將文件和目錄壓縮成一個zip文件,並節省儲存空間並方便傳輸。 zip指令的基本語法為「zip [選項] [壓縮檔案名稱] [要壓縮的檔案或目錄]」。

如何使用Java中的Zip函數進行檔案壓縮 如何使用Java中的Zip函數進行檔案壓縮 Jun 26, 2023 pm 02:10 PM

壓縮檔案是一種常見的操作,能夠節省磁碟的空間以及網路傳輸的時間,而Java中提供了Zip函數用於實現檔案的壓縮。本文將透過詳細的介紹和實例示範來展示如何使用Java中的Zip函數進行檔案壓縮。一、Zip函數介紹Zip函數是Java中提供的壓縮和打包工具類別庫,使用函數可以將檔案或資料夾壓縮成一個Zip格式的檔案。 Zip函數中主要使用了ZipOutputStr

輕鬆掌握 HTML 檔案 ZIP 壓縮秘訣 輕鬆掌握 HTML 檔案 ZIP 壓縮秘訣 Apr 09, 2024 pm 05:36 PM

HTML檔案ZIP壓縮可以透過Python的zipfile模組實現:建立ZIP檔案物件。向ZIP檔案新增HTML檔。關閉ZIP檔案物件。

7z和zip哪個無損 7z和zip哪個無損 Jan 19, 2021 pm 06:37 PM

7z和zip都是無損壓縮。 7z是一種主流高效的壓縮格式,它擁有極高的壓縮比;ZIP檔案格式是一種資料壓縮和文件儲存的檔案格式。 7z壓縮比率大些,zip次之;zip格式比較常見支技泛圍廣,windows作業系統預設支援zip格式。

Java如何實作解析zip壓縮包並取得檔案內容 Java如何實作解析zip壓縮包並取得檔案內容 May 18, 2023 am 11:34 AM

功能描述頁面上傳一個原始碼壓縮包,後端將壓縮包解壓縮,並取得每個檔案中的內容。相關原始碼(1)首先定義一個與解壓縮檔案對應的實體類別。 packagecom.sonar.data.vo;importlombok.Data;/***檔案解析物件**@authorYuanqiang.Zhang*@since2022/7/12*/@DatapublicclassUnzipFileVo{/***類型:0-資料夾;1-檔案*/privateIntegertype;/***檔案路徑(如:src/main/java/co

如何在 iPhone 上為照片和影片建立 zip 文件 如何在 iPhone 上為照片和影片建立 zip 文件 Apr 13, 2023 pm 06:49 PM

如何在 iPhone 上為照片和影片建立 zip 檔案在 iPhone 上啟動照片應用程式。選擇要新增到 zip 檔案的照片和/或影片。點擊左下角的分享按鈕。從共用選單中點選 儲存到檔案。選擇目標資料夾,然後按一下右上角的儲存。在 iPhone 上啟動檔案應用程式。導航到您保存照片/影片的資料夾。點擊並按住它(Haptic Touch)並選擇Compress。瞧!您現在有一個 zip 文件,其中包含您選擇的所有照片和影片。您可以透過自己喜歡的應用程式共享 zip(假設它們支援 zip 檔案),如果

See all articles