(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)
ZipArchive::addFile — Fügt eine Datei von einem gegebenen Pfad zu einem ZIP-Archiv hinzu
$filepath
,$entryname
= "",$start
= 0,$length
= ZipArchive::LENGTH_TO_END,$flags
= ZipArchive::FL_OVERWRITEFügt eine Datei von einem gegebenen Pfad zu einem ZIP-Archiv hinzu.
Hinweis: Für maximale Portierbarkeit wird empfohlen, in ZIP-Dateinamen immer Schrägstriche (
/
) als Verzeichnis-Trennzeichen zu verwenden.
filepath
Der Pfad zur hinzuzufügenden Datei.
entryname
Falls übergeben und nicht leer, ist dies der lokale Name innerhalb des ZIP-Archives, der den filepath
überschreibt.
start
Die Startposition für partielles Kopieren.
length
Die Länge für partielles Kopieren; bei ZipArchive::LENGTH_TO_END
(0) wird die Dateigröße verwendet, bei ZipArchive::LENGTH_UNCHECKED
wird die gesamte Datei verwendet (beginnend bei start
).
flags
Eine Bitmaske bestehend aus ZipArchive::FL_OVERWRITE
, ZipArchive::FL_ENC_GUESS
, ZipArchive::FL_ENC_UTF_8
, ZipArchive::FL_ENC_CP437
, ZipArchive::FL_OPEN_FILE_NOW
. Das Verhalten dieser Konstanten wird auf der Seite ZIP-Konstanten beschrieben.
Version | Beschreibung |
---|---|
8.0.0 / 1.18.0 | flags wurde hinzugefügt. |
8.3.0 / 1.22.1 | ZipArchive::FL_OPEN_FILE_NOW wurde hinzugefügt. |
8.3.0 / 1.22.2 | ZipArchive::LENGTH_TO_END und ZipArchive::LENGTH_UNCHECKED wurden hinzugefügt. |
Dieses Beispiel öffnet ein ZIP-Dateiarchiv test.zip und fügt die Datei /pfad/zur/datei.txt als neuername.txt hinzu.
Beispiel #1 Öffnen und hinzufügen
<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
$zip->addFile('/pfad/zur/datei.txt', 'neuername.txt');
$zip->close();
echo 'ok';
} else {
echo 'Fehler';
}
?>
Hinweis:
Falls eine Datei zu einem Archiv hinzugefügt werden soll, wird PHP die Datei sperren; die Sperre wird erst gelöst, nachdem das ZipArchive-Objekt geschlossen wurde, entweder per ZipArchive::close(), oder weil das ZipArchive-Objekt zerstört wurde. Dies kann dazu führen, dass die hinzuzufügende Datei erst gelöscht werden kann, nachdem die Sperre gelöst wurde.