International PHP Conference Berlin 2021

ZipArchive::setEncryptionName

(PHP >= 7.2.0, PHP 8, PECL zip >= 1.14.0)

ZipArchive::setEncryptionNameSet the encryption method of an entry defined by its name

Beschreibung

public ZipArchive::setEncryptionName ( string $name , int $method , string|null $password = null ) : bool

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

Parameter-Liste

name

Name of the entry.

method

The encryption method defined by one of the ZipArchive::EM_ constants.

password

Optional password, default used when missing.

Rückgabewerte

Gibt bei Erfolg true zurück. Im Fehlerfall wird false zurückgegeben.

Changelog

Version Beschreibung
8.0.0 password is now nullable.

Beispiele

This example creates a ZIP file archive test.zip and add the file test.txt encrypted using the AES 256 method.

Beispiel #1 Archive and encrypt a file

<?php
$zip 
= new ZipArchive();
if (
$zip->open('test.zip'ZipArchive::CREATE) === TRUE) {
    
$zip->setPassword('secret');
    
$zip->addFile('text.txt');
    
$zip->setEncryptionName('text.txt'ZipArchive::EM_AES_256);
    
$zip->close();
    echo 
"Ok\n";
} else {
    echo 
"KO\n";
}
?>

Anmerkungen

Hinweis:

This function is only available if built against libzip ≥ 1.2.0.

Siehe auch

add a note add a note

User Contributed Notes 1 note

up
3
mauro dot chojrin at leewayweb dot com
6 months ago
Files compressed using this function on Linux won't be decompressed using Windows.

There seems to be some incompatibility with Windows built-in decompressor.

There's an alternative library that works better here: https://github.com/Ne-Lexa/php-zip

I got windows to open a file created with it by using the PKWARE encryption method
To Top