ZipArchive::setPassword

(PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL zip >= 1.12.4)

ZipArchive::setPasswordDefine a senha para o arquivo ZIP ativo

Descrição

public ZipArchive::setPassword(#[\SensitiveParameter] string $password): bool

Define a senha para o arquivo ZIP ativo.

Parâmetros

password

A senha a ser usada para o arquivo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Notas

Nota:

A partir do PHP 7.2.0 e libzip 1.2.0, a senha é usada para descompactar o arquivo ZIP e também é a senha padrão para ZipArchive::setEncryptionName() e ZipArchive::setEncryptionIndex(). Anteriormente, esta função apenas definia a senha a ser usada para descompactar o arquivo ZIP; ela não transformava um ZipArchive sem senha em um ZipArchive com senha.

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 2 notes

up
21
stanislav dot eckert at vizson dot de
10 years ago
It seems that this function supports only decryption of password protected archives (see changelog: http://pecl.php.net/package-changelog.php?package=zip). Creation of password protected archives is not supported (they will be created simply as non-protected archives).Example code for extraction of files from password protected ZIP archives:<?php    $zip = new ZipArchive();    $zip_status = $zip->open("test.zip");    if ($zip_status === true)    {        if ($zip->setPassword("MySecretPassword"))        {            if (!$zip->extractTo(__DIR__))                echo "Extraction failed (wrong password?)";        }        $zip->close();    }    else    {        die("Failed opening archive: ". @$zip->getStatusString() . " (code: ". $zip_status .")");    }?>
up
1
blindfury at mailinator dot com
7 years ago
To create password protected archive in PHP >= 7.2 use:<?php    $zip->setEncryptionName('test.txt', ZipArchive::EM_AES_256, 'test');?>Based on example from the documentation:<?php$zip = new ZipArchive;$res = $zip->open('test.zip', ZipArchive::CREATE);if ($res === TRUE) {    $zip->addFromString('test.txt', 'file content goes here');    $zip->setEncryptionName('test.txt', ZipArchive::EM_AES_256, 'passw0rd');    $zip->close();    echo 'ok';} else {    echo 'failed';}?>
To Top