Heim >Backend-Entwicklung >PHP-Tutorial >Zip-Dekomprimierungsbibliothek in PHP8.0: ZipArchive

Zip-Dekomprimierungsbibliothek in PHP8.0: ZipArchive

WBOY
WBOYOriginal
2023-05-14 08:54:262925Durchsuche

Als beliebte serverseitige Programmiersprache wird PHP häufig verwendet und unterstützt. Auch die neue Zip-Dekomprimierungsbibliothek in der PHP8.0-Version ist eine sehr praktische Funktion, die PHP-Entwicklern mehr Programmiertools und -lösungen bieten kann.

Diese Zip-Dekomprimierungsbibliothek heißt ZipArchive und ist eine neu eingeführte Zip-Dekomprimierungs- und Komprimierungsklasse in der PHP 8.0-Version. Diese Funktion kann Entwicklern helfen, das Problem der Zip-Dateioperationen in PHP zu lösen und eine einfachere, schnellere und effektivere Lösung bereitzustellen, die es Entwicklern ermöglicht, Projekte einfacher zu entwickeln und zu verwalten.

Bevor Sie die ZipArchive-Funktion verwenden, können Sie die Zip-Erweiterungsfunktion in der Konfigurationsdatei aktivieren und die ZipArchive-Unterstützung aktivieren. Die Methode zur Verwendung von ZipArchive ähnelt der Funktionsweise gewöhnlicher PHP-Objekte Einzelheiten unten.

1. ZipArchive-Workflow

ZipArchive ist eine Namespace-Klasse, die im PHP-Namespace aufgerufen werden kann. Der grundlegende Arbeitsablauf von ZipArchive ist wie folgt:

  • Erstellen Sie zunächst ein ZipArchive-Objekt und verwenden Sie die open()-Methode, um die zu bearbeitende Zip-Datei zu öffnen oder eine neue Zip-Datei zu erstellen. 🎜🎜##🎜🎜 #Dann verwenden Sie die Methode addFile(), um Dateien zur Zip-Datei hinzuzufügen, oder Sie können die Methode addFromString() verwenden, um Zeichenfolgendaten zur Zip-Datei hinzuzufügen , verwenden Sie die Methode close(), um die Zip-Datei zu schließen.
  • ZipArchive kann Zip-Dateien in zwei Modi öffnen: Lesemodus und Schreibmodus. Wenn die Zip-Datei im Schreibmodus geöffnet wird, können Sie Datei- oder Zeichenfolgendaten zur Zip-Datei hinzufügen und die Zip-Datei komprimieren. Wenn die Zip-Datei im Lesemodus geöffnet wird, können Sie die Daten in der Datei nur lesen kann nicht zur Zip-Datei hinzugefügt oder geändert werden.
  • 2. Gängige Methoden von ZipArchive

ZipArchive bietet viele praktische Methoden im Detail.

ZipArchive-Objekt erstellen

    Um die ZipArchive-Funktion zu verwenden, müssen Sie zunächst ein ZipArchive-Objekt erstellen ein ZipArchive-Objekt.
  1. $zip = new ZipArchive();
Zip-Datei öffnen

    Es gibt zwei Modi zum Öffnen von Zip-Dateien: Lesemodus und Schreibmodus. Wenn Sie eine Zip-Datei schreiben oder ändern müssen, müssen Sie die Zip-Datei im Schreibmodus öffnen. Zip-Dateien können mit den folgenden Methoden geöffnet werden.
  1. $zip->open($filename, $mode);
  2. Unter diesen ist $filename der Pfad und Dateiname der Zip-Datei, $mode ist der Lesemodus oder Schreibmodus und der Wert ist ZipArchive::CREATE oder ZipArchive::OVERWRITE. ZipArchive::CREATE bedeutet, eine Zip-Datei zu erstellen, wenn die Zip-Datei nicht vorhanden ist, und ZipArchive::OVERWRITE bedeutet, die ursprüngliche Zip-Datei zu überschreiben, wenn die Zip-Datei vorhanden ist.

Dateien zu Zip-Dateien hinzufügen

    ZipArchive bietet mehrere Methoden zum Hinzufügen von Dateien oder String-Daten zu Zip-Dateien. Unter anderem kann die Methode addFile() eine Datei zur Zip-Datei hinzufügen und die Methode addFromString() kann der Zip-Datei Zeichenfolgendaten hinzufügen. Verwenden Sie die Methode addFile() zum Hinzufügen lokaler Dateien und die Methode addFromString() zum Hinzufügen von Zeichenfolgen.
  1. $zip->addFile($filename, $localname);
    $zip->addFromString($localname, $contents);
  2. Dabei ist $filename der vollständige Pfad und Dateiname der hinzuzufügenden Datei, $localname ist der Dateiname in der Zip-Datei und $contents ist die hinzuzufügende Zeichenfolge.

Zip-Datei schließen

    Verwenden Sie die Methode close(), um die Zip-Datei zu schließen und den Vorgang für die Zip-Datei abzuschließen.
  1. $zip->close();
Inhalt aus der Zip-Datei lesen

    Wenn der Modus zum Öffnen der Zip-Datei der Lesemodus ist, können Sie zum Lesen die folgende Methode verwenden den Inhalt aus der Zip-Datei. Lesen Sie den Inhalt aus der Datei.
  1. $zip->getFromName($name);
  2. Dabei gibt $name den Dateinamen in der zu lesenden Zip-Datei an.

3. Fall der Verwendung von ZipArchive

Schauen wir uns einen konkreten Fall an, um den Prozess der Verwendung von ZipArchive zu zeigen. In diesem Fall wird die Bilddatei in eine Zip-Datei komprimiert und die Zip-Datei auf dem Server gespeichert.

$dir = './images';  // 图片目录
$zipname = 'images.zip';  // 压缩文件名

// 创建ZipArchive对象
$zip = new ZipArchive();

// 打开要写入的Zip文件
if ($zip->open($zipname, ZipArchive::CREATE) !== TRUE) {
  exit("无法创建Zip文件
");
}

// 从目录中读取文件,并将其添加到Zip文件中
if ($handle = opendir($dir)) {
  while (false !== ($entry = readdir($handle))) {
    if ($entry != "." && $entry != "..") {
      $zip->addFile($dir.'/'.$entry, $entry);
    }
  }
  closedir($handle);
}

// 关闭Zip文件
$zip->close();

// 将Zip文件保存到服务器
header('Content-Type: application/zip');
header('Content-Disposition: attachment; filename="'.basename($zipname).'"');
header('Content-Length: ' . filesize($zipname));
readfile($zipname);

// 清理Zip文件
unlink($zipname);

Geben Sie in diesem Fall zunächst das zu komprimierende Bildverzeichnis und den Namen der zu erstellenden Zip-Datei an. Erstellen Sie dann ein ZipArchive-Objekt, öffnen Sie die Zip-Datei und fügen Sie die Bilddateien im Verzeichnis zur Zip-Datei hinzu. Speichern Sie abschließend die Zip-Datei auf dem Server und senden Sie sie zum Download an den Benutzer. Abschließend müssen Sie die Zip-Dateien bereinigen und die auf dem Server gespeicherten Zip-Dateien löschen.

4. Zusammenfassung

ZipArchive ist eine sehr praktische Funktion, die in der PHP8.0-Version eingeführt wurde und PHP-Entwicklern die Bedienung und Verwaltung von Zip-Dateien erleichtern kann. Die von ZipArchive bereitgestellte Methode ist einfach und praktisch. Sie können problemlos Datei- oder Zeichenfolgendaten zu Zip-Dateien hinzufügen und die Daten in Zip-Dateien auch lesen. Zip-Dateien können mit ZipArchive einfach erstellt und verwaltet werden, was die PHP-Programmierung komfortabler und effizienter macht.

Das obige ist der detaillierte Inhalt vonZip-Dekomprimierungsbibliothek in PHP8.0: ZipArchive. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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