Signatur
Beschreibung
zip_entry_name() liefert den vollständigen Namen eines ZIP-Eintrags, wie er im Archiv gespeichert ist. Der Name enthält üblicherweise den relativen Pfad innerhalb des Archivs, z. B. ordner/datei.txt. Die Funktion gehört zur prozeduralen ZIP-API von PHP.
Um die Funktion verwenden zu können, muss ein gültiges ZIP-Eintrags-Handle übergeben werden, das typischerweise durch zip_read() in Verbindung mit zip_open() erzeugt wird. Der Eintrag muss dabei nicht mit zip_entry_open() geöffnet sein – der Name ist auch ohne das Öffnen des Inhalts abrufbar.
Die Funktion ist nützlich, um ZIP-Archive zu inspizieren, Dateinamen zu filtern oder gezielt bestimmte Einträge zu extrahieren. Für modernere Anwendungen empfiehlt sich allerdings die objektorientierte ZipArchive-Klasse, da die prozedurale ZIP-API seit PHP 8.0 als veraltet (deprecated) gilt und in zukünftigen Versionen entfernt werden kann.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $zip_entry Pflicht | resource | Ein gültiges ZIP-Eintrags-Handle, wie es von zip_read() zurückgegeben wird. |
Rückgabewert
string zurück. Bei einem ungültigen Handle oder einem Fehler wird false zurückgegeben.Beispiele
Alle Dateinamen eines ZIP-Archivs auflisten
<?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;
}
zip_close($zip);
} else {
echo 'Fehler beim Öffnen des Archivs: ' . $zip;
}
?>
Nur bestimmte Dateitypen aus einem ZIP-Archiv extrahieren
<?php
$zip = zip_open('/pfad/zum/archiv.zip');
if (is_resource($zip)) {
while ($entry = zip_read($zip)) {
$name = zip_entry_name($entry);
// Nur .txt-Dateien verarbeiten
if (str_ends_with($name, '.txt')) {
zip_entry_open($zip, $entry);
$inhalt = zip_entry_read($entry, zip_entry_filesize($entry));
echo '=== ' . $name . ' ===' . PHP_EOL;
echo $inhalt . PHP_EOL;
zip_entry_close($entry);
}
}
zip_close($zip);
}
?>
// Wichtig · Fallstricke
Deprecation-Hinweis: Die gesamte prozedurale ZIP-API (zip_open, zip_read, zip_entry_name usw.) ist seit PHP 8.0 als veraltet markiert und sollte nicht mehr für neue Projekte verwendet werden. Stattdessen empfiehlt sich die Klasse ZipArchive, die eine vollständige und aktiv gepflegte objektorientierte Schnittstelle bietet.
Einträge, die Verzeichnisse repräsentieren, enden im Namen typischerweise mit einem Schrägstrich (/). Dies sollte beim Extrahieren berücksichtigt werden, um Fehler beim Schreiben von Dateien zu vermeiden.