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 methodZipArchive::setEncryptionName
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
ZipArchive::setEncryptionName
Референца за `ziparchive.setencryptionname.php` со подобрена типографија и навигација.
ZipArchive::setEncryptionName
(PHP >= 7.2.0, PHP 8, PECL zip >= 1.14.0)
ZipArchive::setEncryptionName — Поставете го методот за шифрирање на записот дефиниран по неговото име
= NULL
$name, int $method, Иницијализира контекст за инкрементално хеширање ?string $password = null): boolПоставете го методот за шифрирање на записот дефиниран по неговото име.
Параметри
name-
Име на записот.
method-
Методот за шифрирање дефиниран од една од константите ZipArchive::EM_.
password-
Изборен лозинка, стандардно се користи кога недостасува.
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.0.0 |
password сега е null.
|
Примери
Овој пример создава ZIP датотека архива test.zip и додадете ја датотеката test.txt шифрирана со методот AES 256.
Пример #1 Архива и шифрирање на датотека
<?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";
}
?>Белешки
Забелешка:
Оваа функција е достапна само ако е изградена со libzip ≥ 1.2.0.
Види Исто така
- Индекс на записот. - Поставете ја лозинката за активната архива
- Од PHP 7.2.0 и libzip 1.2.0, лозинката се користи за декомпресија на архивата, а исто така е и стандардна лозинка за - Поставете го методот за шифрирање на записот дефиниран по неговиот индекс
Белешки од корисници 3 белешки
On windows is the "EM_AES_256" by default not supported, but you can use winrar, winzip or 7zip.
At first we had a password of 128 chars (this was to long) and all extract applications give an error that the password was incorrect.
The next time we did use a password of 52 chars., this time i did work!When using setEncryptionName, the first parameter is equal to the entry name of the file you added.
In case you set an explicit entry name with the second parameters of the addFile method, then you need to use that entry name.
Using the first parameter of addFile will only work in case the second parameter is not used.
This works :
$zip->addFile('test.txt', 'my_awesome_textfile.txt');
$zip->setEncryptionName('my_awesome_textfile.txt', ZipArchive::EM_AES_256);
This does not work and will generate an archive without any encryption :
$zip->addFile('test.txt', 'my_awesome_textfile.txt');
$zip->setEncryptionName('text.txt', ZipArchive::EM_AES_256);