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 .")");
}
?>ZipArchive::setPassword
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
ZipArchive::setPassword
Референца за `ziparchive.setpassword.php` со подобрена типографија и навигација.
ZipArchive::setPassword
(PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL zip >= 1.12.4)
ZipArchive::setPassword — (PHP 5 >= 5.6.0, PHP 7, PHP 8, PECL zip >= 1.12.4)
= NULL
$password): boolПоставете ја лозинката за активната архива
Параметри
password-
Ги поставува лозинката за активната архива.
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.
Белешки
Забелешка:
Лозинката што ќе се користи за архивата. ZipArchive::setPassword() and Од PHP 7.2.0 и libzip 1.2.0, лозинката се користи за декомпресија на архивата, а исто така е и стандардна лозинка заZipArchive::setEncryptionIndex() ZipArchive . Порано, оваа функција само ја поставуваше лозинката што ќе се користи за декомпресија на архивата; не ја претвораше ZipArchive.
Види Исто така
- Од PHP 7.2.0 и libzip 1.2.0, лозинката се користи за декомпресија на архивата, а исто така е и стандардна лозинка за - Поставете го методот за шифрирање на записот дефиниран по неговиот индекс
- ZipArchive::setPassword() ZipArchive::setEncryptionName()
Белешки од корисници 2 забелешки
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';
}
?>