Heim Backend-Entwicklung PHP-Tutorial php ZipArchive压缩函数详解实例_PHP

php ZipArchive压缩函数详解实例_PHP

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

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Beste Anleitung zum Komprimieren von HTML-Dateien in ZIP Beste Anleitung zum Komprimieren von HTML-Dateien in ZIP Apr 09, 2024 pm 04:09 PM

Das Komprimieren von HTML-Dateien in ZIP kann die Geschwindigkeit beim Laden von Seiten verbessern. Zu den Methoden gehören: Verwendung von Online-Tools (wie FileOptimizer, TinyPNG) Verwendung von Befehlszeilentools (wie z. B. gzip, 7-zip) Verwendung von Node.js-Skripten (mithilfe des zlib-Moduls)

So verwenden Sie den Linux-Komprimierungs-ZIP-Befehl So verwenden Sie den Linux-Komprimierungs-ZIP-Befehl Oct 08, 2023 pm 01:25 PM

Der Befehl zip ist ein sehr nützliches Komprimierungstool in Linux-Systemen. Mit dem Befehl „zip“ können Sie Dateien und Verzeichnisse ganz einfach in eine ZIP-Datei komprimieren, Speicherplatz sparen und die Übertragung erleichtern. Die grundlegende Syntax des Zip-Befehls lautet „zip [Optionen] [Name der komprimierten Datei] [zu komprimierende Datei oder Verzeichnis]“.

Detaillierte Erläuterung des Dekomprimierungsdateibefehls (zip) unter Centos7 Detaillierte Erläuterung des Dekomprimierungsdateibefehls (zip) unter Centos7 Jan 07, 2024 pm 06:30 PM

1. Der komprimierte Ordner ist eine ZIP-Datei [root@cgls]#zip-rmydata.zipmydata2. Entpacken Sie mydata.zip in das Verzeichnis mydatabak [root@cgls]#unzipmydata.zip-dmydatabak3.mydata01 und mydata02.txt werden komprimiert mydata.zip[root@cgls]#zipmydata.zipmydata01mydata02.txt4. Dekomprimieren Sie direkt die Datei mydata.zip [root@cgls]#unzipmydata.zip5

So verwenden Sie die Zip-Funktion in Java zur Dateikomprimierung So verwenden Sie die Zip-Funktion in Java zur Dateikomprimierung Jun 26, 2023 pm 02:10 PM

Das Komprimieren von Dateien ist ein gängiger Vorgang, der Speicherplatz und Netzwerkübertragungszeit sparen kann. Java bietet die Zip-Funktion zur Dateikomprimierung. In diesem Artikel wird anhand einer detaillierten Einführung und einer Beispieldemonstration gezeigt, wie die Zip-Funktion in Java zur Dateikomprimierung verwendet wird. 1. Einführung in die Zip-Funktion Die Zip-Funktion ist eine in Java bereitgestellte Komprimierungs- und Verpackungstoolbibliothek. Mit dieser Funktion können Sie eine Datei oder einen Ordner in eine Datei im Zip-Format komprimieren. ZipOutputStr wird hauptsächlich in der Zip-Funktion verwendet

Welches ist verlustfrei, 7z oder zip? Welches ist verlustfrei, 7z oder zip? Jan 19, 2021 pm 06:37 PM

7z und zip sind beide verlustfreie Komprimierungen. 7z ist ein gängiges und effizientes Komprimierungsformat mit einer sehr hohen Komprimierungsrate; das ZIP-Dateiformat ist ein Dateiformat zur Datenkomprimierung und Dokumentenspeicherung. 7z hat eine höhere Komprimierungsrate, gefolgt von zip; das Zip-Format ist häufiger und verfügt über eine breite Palette von Technologien, und das Windows-Betriebssystem unterstützt standardmäßig das Zip-Format.

Meistern Sie ganz einfach die Geheimnisse der ZIP-Komprimierung von HTML-Dateien Meistern Sie ganz einfach die Geheimnisse der ZIP-Komprimierung von HTML-Dateien Apr 09, 2024 pm 05:36 PM

Die ZIP-Komprimierung von HTML-Dateien kann über das Zipfile-Modul von Python erreicht werden: Erstellen Sie ein ZIP-Dateiobjekt. Fügen Sie HTML-Dateien zur ZIP-Datei hinzu. Schließen Sie das ZIP-Dateiobjekt.

So analysieren Sie Zip-Archive und erhalten Dateiinhalte in Java So analysieren Sie Zip-Archive und erhalten Dateiinhalte in Java May 18, 2023 am 11:34 AM

Die Funktionsbeschreibungsseite lädt ein komprimiertes Quellcodepaket hoch, und das Backend dekomprimiert das komprimierte Paket und ruft den Inhalt jeder Datei ab. Zugehöriger Quellcode (1) Definieren Sie zunächst eine Entitätsklasse, die der dekomprimierten Datei entspricht. packagecom.sonar.data.vo;importlombok.Data;/***Dateiparsingobjekt**@authorYuanqiang.Zhang*@since2022/7/12*/@DatapublicclassUnzipFileVo{/***Typ: 0-Ordner;1- Datei */privateIntegertype;/***Dateipfad (z. B. src/main/java/co

zip_close()-Funktion in PHP zip_close()-Funktion in PHP Aug 28, 2023 pm 03:33 PM

Die Funktion zip_close() wird zum Schließen von Zip-Dateiarchiven verwendet. zip wird durch die Funktion zip_open() geöffnet. Syntax zip_close(zip_file) Parameter zip_file – hier werden mit zip_open() geöffnete Zip-Dateien erwähnt. Dies ist die Datei, die wir schließen möchten. Rückgabe Die Funktion zip_close() gibt nichts zurück. Beispiel<?php $zip_file=zip_open("new.zip"); zip_read($zip_file);&n

See all articles