Rumah pembangunan bahagian belakang tutorial 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...
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Terbaik untuk Memampatkan Fail HTML ke ZIP Panduan Terbaik untuk Memampatkan Fail HTML ke ZIP Apr 09, 2024 pm 04:09 PM

Memampatkan fail HTML ke dalam ZIP boleh meningkatkan kelajuan pemuatan halaman. Kaedah termasuk: menggunakan alatan dalam talian (seperti FileOptimizer, TinyPNG) menggunakan alatan baris arahan (seperti gzip, 7-zip) menggunakan skrip Node.js (menggunakan modul zlib)

Cara menggunakan arahan zip mampatan linux Cara menggunakan arahan zip mampatan linux Oct 08, 2023 pm 01:25 PM

Perintah zip ialah alat pemampatan yang sangat berguna dalam sistem Linux. Dengan menggunakan arahan zip, anda boleh dengan mudah memampatkan fail dan direktori ke dalam fail zip dan menjimatkan ruang storan serta memudahkan pemindahan. Sintaks asas arahan zip ialah "zip [pilihan] [nama fail termampat] [fail atau direktori untuk dimampatkan]".

Penjelasan terperinci tentang arahan fail penyahmampatan (zip) di bawah centos7 Penjelasan terperinci tentang arahan fail penyahmampatan (zip) di bawah centos7 Jan 07, 2024 pm 06:30 PM

1. Folder yang dimampatkan ialah fail zip [root@cgls]#zip-rmydata.zipmydata2 Nyahzip mydata.zip ke dalam direktori mydatabak [root@cgls]#unzipmydata.zip-dmydatabak3.mydata01 folder dan mydata02.txt dimampatkan ke dalam. mydata.zip[root@cgls]#zipmydata.zipmydata01mydata02.txt4 Terus nyahmampat fail mydata.zip [root@cgls]#unzipmydata.zip5

Cara menggunakan fungsi Zip dalam Java untuk pemampatan fail Cara menggunakan fungsi Zip dalam Java untuk pemampatan fail Jun 26, 2023 pm 02:10 PM

Memampatkan fail ialah operasi biasa yang boleh menjimatkan ruang cakera dan masa penghantaran rangkaian, dan Java menyediakan fungsi Zip untuk pemampatan fail. Artikel ini akan menunjukkan cara menggunakan fungsi Zip dalam Java untuk pemampatan fail melalui pengenalan terperinci dan contoh demonstrasi. 1. Pengenalan kepada fungsi Zip Fungsi Zip ialah perpustakaan alat pemampatan dan pembungkusan yang disediakan dalam Java Anda boleh menggunakan fungsi ini untuk memampatkan fail atau folder ke dalam fail format Zip. ZipOutputStr digunakan terutamanya dalam fungsi Zip

Kuasai dengan mudah rahsia pemampatan ZIP fail HTML Kuasai dengan mudah rahsia pemampatan ZIP fail HTML Apr 09, 2024 pm 05:36 PM

Pemampatan ZIP fail HTML boleh dicapai melalui modul fail zip Python: Buat objek fail ZIP. Tambahkan fail HTML pada fail ZIP. Tutup objek fail ZIP.

7z和zip哪个无损 7z和zip哪个无损 Jan 19, 2021 pm 06:37 PM

7z和zip都是无损压缩。7z是一种主流高效的压缩格式,它拥有极高的压缩比;ZIP文件格式是一种数据压缩和文档储存的文件格式。7z压缩比率大些,zip次之;zip格式比较常见支技泛围广,windows操作系统默认支持zip格式。

Bagaimana untuk menghuraikan arkib zip dan mendapatkan kandungan fail dalam Java Bagaimana untuk menghuraikan arkib zip dan mendapatkan kandungan fail dalam Java May 18, 2023 am 11:34 AM

Halaman penerangan fungsi memuat naik pakej termampat kod sumber, dan bahagian belakang menyahmampat pakej termampat dan mendapatkan kandungan setiap fail. Kod sumber yang berkaitan (1) Mula-mula tentukan kelas entiti yang sepadan dengan fail yang dinyahmampat. packagecom.sonar.data.vo;importlombok.Data;/***File parsing object**@authorYuanqiang.Zhang*@since2022/7/12*/@DatapublicclassUnzipFileVo{/***Type: 0-folder;1- File */privateIntegertype;/***Laluan fail (seperti: src/main/java/co

fungsi zip_close() dalam PHP fungsi zip_close() dalam PHP Aug 28, 2023 pm 03:33 PM

Fungsi zip_close() digunakan untuk menutup arkib fail zip. zip dibuka oleh fungsi zip_open(). Sintaks zip_close(zip_file) Parameter zip_file - fail zip dibuka dengan zip_open() disebut di sini. Ini adalah fail yang ingin kami tutup. Kembalikan Fungsi zip_close() tidak mengembalikan apa-apa. Contoh<?php $zip_file=zip_open("new.zip"); zip_read($zip_file);&n

See all articles