php8.5
Home/ Manual/ zip / ziparchive/ ZipArchive::setCompressionName

ZipArchive::setCompressionName

PHP function Edit on GitHub ✎

(PHP 7, PHP 8, PECL zip >= 1.13.0)

Set the compression method of an entry defined by its name

Description

ZipArchive::setCompressionName(string $name, int $method, int $compflags = 0): bool

Set the compression method of an entry defined by its name.

Parameters

name

Name of the entry.

method

The compression method, one of the ZipArchive::CM_* constants.

compflags

Compression level.

Return Values

Success

Examples

Add files with different compression methods to an archive

php
<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('foo', 'Some text');
    $zip->addFromString('bar', 'Some other text');
    $zip->setCompressionName('foo', ZipArchive::CM_STORE);
    $zip->setCompressionName('bar', ZipArchive::CM_DEFLATE);
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>

Add file and set compression method

php
<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFile('foo.jpg', 'bar.jpg');
    $zip->setCompressionName('bar.jpg', ZipArchive::CM_XZ);
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>

Source: reference/zip/ziparchive/setcompressionname.xml · from the official PHP manual (php/doc-en)