Start · Sprachen · PHP · Referenz · zip_entry_compressionmethod

zip_entry_compressionmethod

Funktion

Gibt die Komprimierungsmethode eines ZIP-Verzeichniseintrags als Zeichenkette zurück.

seit PHP 4.1.0 Kategorie: io

Signatur

zip_entry_compressionmethod(resource $zip_entry): string

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

Typ
string
Beschreibung
Gibt die Komprimierungsmethode des Eintrags als Zeichenkette zurück, z. B. 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;
}
Datei: beispiel.txt — Methode: deflated Datei: bild.png — Methode: stored

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);
}
Unkomprimierte Dateien: - bild.png

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