Signatur
Beschreibung
zip_entry_close() schließt einen einzelnen Verzeichniseintrag innerhalb eines ZIP-Archivs, der zuvor mit zip_entry_open() geöffnet wurde. Nach dem Schließen können keine weiteren Lesevorgänge auf diesem Eintrag durchgeführt werden.
Die Funktion gehört zur älteren, prozeduralen ZIP-Erweiterung von PHP. Sie wird typischerweise verwendet, wenn man mit zip_read() durch die Einträge eines ZIP-Archivs iteriert, jeden Eintrag öffnet, seinen Inhalt mit zip_entry_read() ausliest und anschließend wieder schließt.
Für neue Projekte empfiehlt sich die Verwendung der objektorientierten ZipArchive-Klasse, da die prozedurale ZIP-API als veraltet gilt und in PHP 8.0 offiziell als deprecated markiert wurde.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $zip_entry Pflicht | resource | Eine gültige ZIP-Eintragsressource, die zuvor mit zip_entry_open() geöffnet wurde. |
Rückgabewert
true bei Erfolg zurück, false bei einem Fehler (z. B. wenn die übergebene Ressource ungültig ist).Beispiele
Einträge eines ZIP-Archivs auslesen und schließen
<?php
$zip = zip_open('/pfad/zum/archiv.zip');
if (is_resource($zip)) {
while ($entry = zip_read($zip)) {
$name = zip_entry_name($entry);
echo 'Eintrag: ' . $name . PHP_EOL;
if (zip_entry_open($zip, $entry, 'r')) {
$size = zip_entry_filesize($entry);
$inhalt = zip_entry_read($entry, $size);
echo 'Größe: ' . strlen($inhalt) . ' Bytes' . PHP_EOL;
// Eintrag nach dem Lesen schließen
zip_entry_close($entry);
}
}
zip_close($zip);
}
Rückgabewert prüfen
<?php
$zip = zip_open('/pfad/zum/archiv.zip');
if (is_resource($zip)) {
$entry = zip_read($zip);
if ($entry && zip_entry_open($zip, $entry)) {
// Inhalt verarbeiten ...
$ergebnis = zip_entry_close($entry);
if ($ergebnis) {
echo 'Eintrag erfolgreich geschlossen.';
} else {
echo 'Fehler beim Schließen des Eintrags.';
}
}
zip_close($zip);
}
// Wichtig · Fallstricke
Deprecated: Die prozedurale ZIP-API (zip_open, zip_read, zip_entry_open, zip_entry_close usw.) wurde in PHP 8.0 als veraltet (deprecated) markiert und erzeugt entsprechende Warnungen. Für neue Projekte sollte ausschließlich die Klasse ZipArchive verwendet werden.
Es ist wichtig, jeden mit zip_entry_open() geöffneten Eintrag auch wieder mit zip_entry_close() zu schließen, bevor das gesamte Archiv mit zip_close() geschlossen wird, um Ressourcenlecks zu vermeiden.