Heim > Artikel > Backend-Entwicklung > So erstellen Sie eine Zip-Datei mit PHP
Durch die Verwendung komprimierter Dateien kann Speicherplatz gespart werden. Komprimierte Dateien sind kleiner, bequemer für die Netzwerkübertragung und äußerst effizient. In diesem Artikel wird erläutert, wie Sie mit PHP komprimierte ZIP-Dateien erstellen. Ich hoffe, dass er für Sie hilfreich ist.
Es gibt eine ZipArchive-Klasse in PHP, die einfach zum Erstellen von Zip-Dateien verwendet werden kann. Im Folgenden finden Sie ein Beispiel für die Erstellung einer ZIP-Datei in PHP. [Video-Tutorial-Empfehlung: PHP-Tutorial]
Erstellen Sie eine neue ZIP-Datei
Der folgende Code erstellt eine neue zip-Datei (test_new.zip) herunter und fügen Sie einige Dateien hinzu.
<?php $zip = new ZipArchive; if ($zip->open('test_new.zip', ZipArchive::CREATE) === TRUE) { // 将文件添加到zip文件 $zip->addFile('test.txt'); $zip->addFile('test.pdf'); // 将random.txt文件添加到zip并将其重命名为newfile.txt $zip->addFile('random.txt', 'newfile.txt'); // 将有指定文本的new.txt文件添加到zip文件中 $zip->addFromString('new.txt', '要添加到new.txt文件中的文本'); // 关闭zip文件 $zip->close(); } ?>
Codebeschreibung:
Zeile 2: Erstellen Sie ein Objekt der ZipArchive-Klasse
Zeile 3: Verwendet um eine Datei namens test_new.zip zu erstellen und zu öffnen, damit wir ihr Dateien hinzufügen können. Das Flag ZipArchive::CREATE gibt an, dass wir eine neue ZIP-Datei erstellen möchten.
Zeilen 6 und 7: werden zum Hinzufügen von Dateien zur ZIP-Datei verwendet.
Zeile 10: Wird verwendet, um eine Datei mit dem Namen random.txt zur ZIP-Datei hinzuzufügen und sie in der ZIP-Datei in newfile.txt umzubenennen.
Zeile 13: Wird zum Hinzufügen einer neuen Datei new.txt verwendet. Der Inhalt der Datei lautet „Text, der der Datei new.txt hinzugefügt werden soll“.
Zeile 16: Schließen und Änderungen an der ZIP-Datei speichern.
Hinweis: Manchmal können Probleme auftreten, wenn relative Pfade zu Dateien verwendet werden. Wenn bei der Verwendung des Pfads ein Problem auftritt, können wir die vorhandene ZIP-Datei auch mit dem absoluten Pfad der Datei überschreiben
, wenn wir die vorhandene ZIP-Datei überschreiben möchten. Für ZIP-Dateien verwenden wir kann Code ähnlich dem folgenden verwenden. Das Flag ZipArchive::OVERWRITE gibt an, dass vorhandene ZIP-Dateien überschrieben werden. <?php
$zip = new ZipArchive;
if ($zip->open('test_overwrite.zip', ZipArchive::OVERWRITE) === TRUE)
{
// 将文件添加到zip文件
$zip->addFile('test.txt');
$zip->addFile('test.pdf');
// 关闭zip文件
$zip->close();
}
?>
Dieser Code erstellt eine Datei test_overwrite.zip. Wenn die Datei bereits vorhanden ist, wird die Datei durch diese neue Datei überschrieben.
Erstellen Sie eine neue ZIP-Datei und fügen Sie die Dateien im angegebenen Ordner hinzu
<?php
$zip = new ZipArchive;
if ($zip->open('test_folder.zip', ZipArchive::CREATE) === TRUE)
{
// 将文件添加到zip文件中的demo_folder文件夹内
$zip->addFile('text.txt', 'demo_folder/test.txt');
$zip->addFile('test.pdf', 'demo_folder/test.pdf');
// 将random.txt文件添加到zip文件中的demo_folder文件夹内,并重命名为newfile.txt
$zip->addFile('random.txt', 'demo_folder/newfile.txt');
// 将有指定内容的new.txt添加到zip文件中的demo_folder文件夹
$zip->addFromString('demo_folder/new.txt', '要添加到new.txt文件中的文本');
// 关闭zip文件
$zip->close();
}
?>
Codebeschreibung
Der obige Code fügt verschiedene Dateien aus der ZIP-Datei zum Ordner „demo_folder“ hinzuDer zweite Parameter der Addfile-Funktion kann verwendet werden, um die Dateien in einer neuen Datei zu speichern Ordner
Der erste Parameter in der Funktion addFromString kann verwendet werden, um die Datei in einem neuen Ordner zu speichern
Erstellen Sie eine neue ZIP-Datei und fügen Sie die Datei einem anderen In hinzu der Ordner
<?php
$zip = new ZipArchive;
if ($zip->open('test_folder_change.zip', ZipArchive::CREATE) === TRUE)
{
// 将文件添加到zip文件
$zip->addFile('text.txt', 'demo_folder/test.txt');
$zip->addFile('test.pdf', 'demo_folder1/test.pdf');
// 关闭zip文件
$zip->close();
}
?>
Codebeschreibung
Wir speichern die test.txt-Datei in der Zip-Datei im Ordner demo_folder und die test.pdf-Datei im Ordner demo_folder1
Erstellen Sie eine Zip-Datei mit allen Dateien in einem Verzeichnis
<?php
$zip = new ZipArchive;
if ($zip->open('test_dir.zip', ZipArchive::OVERWRITE) === TRUE)
{
if ($handle = opendir('demo_folder'))
{
// 添加目录中的所有文件
while (false !== ($entry = readdir($handle)))
{
if ($entry != "." && $entry != ".." && !is_dir('demo_folder/' . $entry))
{
$zip->addFile('demo_folder/' . $entry);
}
}
closedir($handle);
}
$zip->close();
}
?>
Codebeschreibung
Kapitel 5 – Zeile 16: Öffnen Sie ein Verzeichnis und erstellen Sie es eine ZIP-Datei mit allen Dateien im Verzeichnis Zeile 5: Öffnen Sie das Verzeichnis
Zeile 8: Rufen Sie den Namen jeder Datei im Verzeichnis ab
Zeile 10: Überspringen „.“ und „..“ und alle anderen Verzeichnisse
Zeile 12: Dateien zur ZIP-Datei hinzufügen
Zeile 15: Verzeichnis schließen
Zeile 18: ZIP-Datei schließen
Erstellen Sie eine Zip-Datei, die alle Dateien in mehreren Verzeichnissen enthält
Der folgende Code fügt der Zip-Datei verschiedene Ordner und Dateien aus diesen Verzeichnissen hinzu <?php
$zip = new ZipArchive;
if ($zip->open('test_files_dirs.zip', ZipArchive::OVERWRITE) === TRUE)
{
// 添加 directory1
if ($handle = opendir('demo_folder/directory1/'))
{
while (false !== ($entry = readdir($handle)))
{
if ($entry != "." && $entry != "..")
{
$zip->addFile('demo_folder/directory1/' . $entry);
}
}
closedir($handle);
}
// 添加 directory2
if ($handle = opendir('demo_folder/directory2/'))
{
while (false !== ($entry = readdir($handle)))
{
if ($entry != "." && $entry != "..")
{
$zip->addFile('demo_folder/directory2/' . $entry);
}
}
closedir($handle);
}
// 添加 directory3
if ($handle = opendir('demo_folder/directory3/'))
{
while (false !== ($entry = readdir($handle)))
{
if ($entry != "." && $entry != "..")
{
$zip->addFile('demo_folder/directory3/' . $entry);
}
}
closedir($handle);
}
$zip->close();
}
?>
Codebeschreibung
Zeilen 6-42: Fügen Sie alle Dateien in den Verzeichnissen Verzeichnis1, Verzeichnis2 und Verzeichnis3 zu den entsprechenden Dateien in der ZIP-Datei im Verzeichnis hinzu. Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere spannende Inhalte finden Sie in den entsprechenden Tutorial-Kolumnen auf der chinesischen PHP-Website! ! !
Das obige ist der detaillierte Inhalt vonSo erstellen Sie eine Zip-Datei mit PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!