Signatur
Beschreibung
zip_entry_compressionmethod() liefert den Namen der Komprimierungsmethode, die für einen bestimmten Eintrag innerhalb eines ZIP-Archivs verwendet wurde. Typische Rückgabewerte sind z. B. deflated (DEFLATE-Algorithmus), stored (keine Komprimierung) oder leere Zeichenketten bei Fehlern.
Die Funktion gehört zur älteren, prozeduralen ZIP-API von PHP und arbeitet eng mit den Funktionen zip_open(), zip_read() und zip_entry_open() zusammen. Um einen Eintrag abrufen zu können, muss dieser zunächst mit zip_read() aus dem geöffneten Archiv gelesen werden.
Diese Funktion ist besonders nützlich, wenn man den Inhalt eines ZIP-Archivs analysieren oder protokollieren möchte – etwa um sicherzustellen, dass Dateien mit einer bestimmten Methode komprimiert sind, oder um Metadaten zu extrahieren. Für neue Projekte empfiehlt sich der Einsatz der objektorientierten ZipArchive-Klasse, da die prozedurale ZIP-API als veraltet gilt.
Hinweis: Die prozedurale ZIP-Erweiterung wurde mit PHP 8.0 als deprecated markiert und kann in zukünftigen Versionen entfernt werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $zip_entry Pflicht | resource | Eine gültige ZIP-Verzeichniseintrag-Ressource, wie sie von zip_read() zurückgegeben wird. |
Rückgabewert
deflated oder stored. Bei einem ungültigen Eintrag wird eine leere Zeichenkette zurückgegeben.Beispiele
Komprimierungsmethode aller Einträge eines ZIP-Archivs ausgeben
<?php
$zip = zip_open('/pfad/zum/archiv.zip');
if (is_resource($zip)) {
while ($entry = zip_read($zip)) {
$name = zip_entry_name($entry);
$method = zip_entry_compressionmethod($entry);
echo "Datei: $name — Methode: $method" . PHP_EOL;
}
zip_close($zip);
} else {
echo 'Fehler beim Öffnen des ZIP-Archivs: ' . $zip;
}
Nur unkomprimierte (stored) Einträge auflisten
<?php
$zip = zip_open('/pfad/zum/archiv.zip');
if (is_resource($zip)) {
echo 'Unkomprimierte Dateien:' . PHP_EOL;
while ($entry = zip_read($zip)) {
if (zip_entry_compressionmethod($entry) === 'stored') {
echo ' - ' . zip_entry_name($entry) . PHP_EOL;
}
}
zip_close($zip);
}
// Wichtig · Fallstricke
Deprecation: Die prozedurale ZIP-API (zip_open, zip_read, zip_entry_compressionmethod usw.) wurde mit PHP 8.0 als veraltet markiert. Für neue Projekte sollte die objektorientierte ZipArchive-Klasse verwendet werden, die mit ZipArchive::statIndex() oder ZipArchive::statName() ähnliche Metadaten liefert.
Das Ergebnis hängt von den im ZIP-Archiv gespeicherten Metadaten ab. Nicht alle ZIP-Werkzeuge tragen die Komprimierungsmethode korrekt ein, was zu unerwarteten Rückgabewerten führen kann.