(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.