Aktueller Standort: Startseite> Neueste Artikel> [PHP verwendet das Ziparchive, um das Dateikomprimierungsverhältnis in komprimierten Paketen anzuzeigen]

[PHP verwendet das Ziparchive, um das Dateikomprimierungsverhältnis in komprimierten Paketen anzuzeigen]

M66 2025-06-22

So verwenden Sie Ziparchive, um die Komprimierungsrate jeder Datei in einem komprimierten Paket in PHP anzuzeigen

In der täglichen Entwicklung verwenden wir häufig Zip -komprimierte Dateien, um Speicherplatz und Getriebebandbreite zu sparen. Um die Komprimierungsleistung zu bewerten, ist es besonders wichtig, die Komprimierungsrate jeder Datei im komprimierten Paket zu verstehen. PHP bietet eine leistungsstarke Ziparchive -Klasse, und damit können wir dies leicht erreichen.

Öffnen Sie die ZIP -Datei und initialisieren Sie das Ziparchive -Objekt

Zunächst müssen Sie eine Ziparchive -Instanz erstellen und eine ZIP -Datei öffnen:

 
$zip = new ZipArchive;
$zipFile = 'path/to/archive.zip';

if ($zip->open($zipFile) === true) {
    // Nachfolgende Logik der Komprimierungsrate -Analyse
} else {
    echo 'Nicht öffnen könnenZIPdokumentieren';
}

Durch Dateien in Reißverschluss iterieren und die Kompressionsrate berechnen

Nach dem Öffnen der ZIP -Datei können Sie die Komprimierungsrate berechnen, indem Sie jede Datei darin durchqueren, wodurch die ursprüngliche Größe und die Druckgröße erhalten werden:

 
$totalSizeBefore = 0;
$totalSizeAfter = 0;

for ($i = 0; $i < $zip->numFiles; $i++) {
    $fileName = $zip->getNameIndex($i);
    $stat = $zip->statIndex($i);
    $sizeBefore = $stat['size'];
    $sizeAfter = $stat['comp_size'];

    $totalSizeBefore += $sizeBefore;
    $totalSizeAfter += $sizeAfter;

    $compressionRate = ($sizeBefore - $sizeAfter) / $sizeBefore * 100;

    echo "dokumentieren名:{$fileName}<br/>";
    echo "Größe vor der Komprimierung:{$sizeBefore} bytes<br/>";
    echo "Druckgröße:{$sizeAfter} bytes<br/>";
    echo "Druckrate:{$compressionRate}%<br/>";
    echo "<br/>";
}

$averageCompressionRate = ($totalSizeBefore - $totalSizeAfter) / $totalSizeBefore * 100 / $zip->numFiles;

echo "总Größe vor der Komprimierung:{$totalSizeBefore} bytes<br/>";
echo "总Druckgröße:{$totalSizeAfter} bytes<br/>";
echo "平均Druckrate:{$averageCompressionRate}%<br/>";

$zip->close();

Logische Beschreibung und Anwendungsumfang

Im obigen Code behalten wir zwei Variablen $ TotalSizepefore und $ sotalSize danach bei, die die kumulative Größe vor und nach der Komprimierung aller Dateien darstellen. Während des Traversalprozesses wird die Komprimierungsrate jeder Datei berechnet und der Gesamtdurchschnittskomprimierungseffekt am Ende erhalten.

Es ist zu beachten, dass diese Methode nur zur Analyse vorhandener Zip -Dateiinhalte geeignet ist. Wenn Sie die Komprimierungsrate bei der ZIP -Generierung in Echtzeit erhalten möchten, können Sie zuerst den Dateiinhalt über File_Get_Contents lesen und dann die Komprimierung mit GZCompress simulieren, um die Komprimierungseffizienz abzuschätzen.

Zusammenfassen

Verwenden Sie die Ziparchive -Klasse, die mit PHP geliefert wird, die Dateikomprimierungsrate im ZIP -Komprimierungspaket schnell anzeigen. Dies ist sehr hilfreich bei der Bewertung der Leistung von Komprimierungsalgorithmen, der Optimierung der Kompressionslogik und der Speichern von Ressourcen. Wenn Sie diese Anforderung in Ihrem Projekt haben, können Sie auch die obige Methode ausprobieren, um sie zu implementieren.