Heim  >  Artikel  >  Backend-Entwicklung  >  PHP ZipArchive implementiert die Komprimierung und Dekomprimierung von Zip-Dateien

PHP ZipArchive implementiert die Komprimierung und Dekomprimierung von Zip-Dateien

WBOY
WBOYOriginal
2016-07-30 13:31:441431Durchsuche
PHP ZipArchive ist eine Erweiterungsklasse, die mit PHP geliefert wird und ZIP-Dateien problemlos komprimieren und dekomprimieren kann. Bevor Sie sie verwenden, müssen Sie zunächst sicherstellen, dass die PHP-ZIP-Erweiterung aktiviert ist Öffnungsmethode. Verschiedene Plattformen ermöglichen die PHP-Erweiterung. Wenn Sie Fragen haben, können Sie diese gerne teilen. Hier sind einige häufig verwendete Beispiele als Referenz. 1. Entpacken Sie die Zip-Datei
$zip = new ZipArchive;//新建一个ZipArchive的对象
/*
通过ZipArchive的对象处理zip文件
$zip->open这个方法的参数表示处理的zip文件名。
如果对zip文件对象操作成功,$zip->open这个方法会返回TRUE
*/
if ($zip->open('test.zip') === TRUE)
{
$zip->extractTo('images');//假设解压缩到在当前路径下images文件夹的子文件夹php
$zip->close();//关闭处理的zip文件
}

2. Komprimieren Sie die Datei in eine Zip-Datei
$zip = new ZipArchive;
/*
$zip->open这个方法第一个参数表示处理的zip文件名。
第二个参数表示处理模式,ZipArchive::OVERWRITE表示如果zip文件存在,就覆盖掉原来的zip文件。
如果参数使用ZIPARCHIVE::CREATE,系统就会往原来的zip文件里添加内容。
如果不是为了多次添加内容到zip文件,建议使用ZipArchive::OVERWRITE。
使用这两个参数,如果zip文件不存在,系统都会自动新建。
如果对zip文件对象操作成功,$zip->open这个方法会返回TRUE
*/
if ($zip->open('test.zip', ZipArchive::OVERWRITE) === TRUE)
{
$zip->addFile('image.txt');//假设加入的文件名是image.txt,在当前路径下
$zip->close();
}

3. Datei hinzufügen, Inhalt an ZIP-Datei anhängen
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
$zip->addFromString('test.txt', 'file content goes here');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}

4. Packen Sie den Ordner in eine Zip-Datei
function addFileToZip($path, $zip) {
$handler = opendir($path); //打开当前文件夹由$path指定。
/*
循环的读取文件夹下的所有文件和文件夹
其中$filename = readdir($handler)是每次循环的时候将读取的文件名赋值给$filename,
为了不陷于死循环,所以还要让$filename !== false。
一定要用!==,因为如果某个文件名如果叫'0',或者某些被系统认为是代表false,用!=就会停止循环
*/
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('images.zip', ZipArchive::OVERWRITE) === TRUE) {
addFileToZip('images/', $zip); //调用方法,对要打包的根目录进行操作,并将ZipArchive的对象传递给方法
$zip->close(); //关闭处理的zip文件
}

Die ZipArchive-Methode lautet wie folgt:
  • ZipArchive::addEmptyDir – Ein neues Verzeichnis hinzufügen
  • ZipArchive::addFile – Fügt eine Datei aus dem angegebenen Pfad zu einem ZIP-Archiv hinzu
  • ZipArchive::addFromString – Fügen Sie eine hinzu Datei mithilfe ihres Inhalts in ein ZIP-Archiv kopieren
  • ZipArchive::close – Das aktive Archiv schließen (geöffnet oder neu erstellt)
  • ZipArchive::deleteIndex – Einen Eintrag im Archiv mithilfe seines Index löschen
  • ZipArchive::deleteName – einen Eintrag im Archiv unter Verwendung seines Namens löschen
  • ZipArchive::extractTo – Archivinhalt extrahieren
  • ZipArchive::getArchiveComment – Gibt den Kommentar zum Zip-Archiv zurück
  • ZipArchive::getCommentIndex – Gibt den Kommentar eines Eintrags unter Verwendung des Eintrags zurück index
  • ZipArchive::getCommentName – Gibt den Kommentar eines Eintrags unter Verwendung des Eintragsnamens zurück
  • ZipArchive::getFromIndex – Gibt den Eintragsinhalt unter Verwendung seines Index zurück
  • ZipArchive::getFromName – Gibt den Eintragsinhalt unter Verwendung seines Namens zurück
  • ZipArchive::getNameIndex – Gibt den Namen eines Eintrags unter Verwendung seines Index zurück
  • ZipArchive::getStatusString – Gibt die Statusfehlermeldung, das System und/oder zurück ZIP-Nachrichten
  • ZipArchive::getStream – Ruft einen Dateihandler für den durch seinen Namen definierten Eintrag ab (schreibgeschützt).
  • ZipArchive::locateName – Gibt den Index des Eintrags im Archiv zurück
  • ZipArchive::open – Öffnen Sie ein ZIP-Dateiarchiv.
  • ZipArchive::renameIndex – Benennt einen durch seinen Index definierten Eintrag um.
  • ZipArchive::renameName – Benennt einen durch seinen Index definierten Eintrag um Name
  • ZipArchive::setArchiveComment – Legt den Kommentar eines ZIP-Archivs fest
  • ZipArchive::setCommentIndex – Legt den Kommentar eines durch seinen Index definierten Eintrags fest
  • ZipArchive::setCommentName – Legen Sie den Kommentar eines durch seinen Namen definierten Eintrags fest.
  • ZipArchive::statIndex – Rufen Sie die Details eines durch seinen Index definierten Eintrags ab.
  • ZipArchive::statName – Rufen Sie die Details eines Eintrags ab definiert durch seinen Namen.
  • ZipArchive::unchangeAll – Alle im Archiv vorgenommenen Änderungen rückgängig machen
  • ZipArchive::unchangeArchive – Alle im Archiv vorgenommenen globalen Änderungen rückgängig machen.
  • ZipArchive ::unchangeIndex – Alle an einem Eintrag am angegebenen Index vorgenommenen Änderungen rückgängig machen
  • ZipArchive::unchangeName – Alle an einem Eintrag mit dem angegebenen Namen vorgenommenen Änderungen rückgängig machen.

  • 以上就介绍了PHP ZipArchive 实现压缩解压Zip文件, 包括了方面的内容, 希望对PHP教程有兴趣的朋友有所帮助。

    Stellungnahme:
    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