(PHP >= 7.2.0, PECL zip >= 1.14.0)
ZipArchive::setEncryptionName — Set the encryption method of an entry defined by its name
$name
   , int $method
   [, string $password
  ] ) : boolSet the encryption method of an entry defined by its name.
nameName of the entry.
methodThe encryption method defined by one of the ZipArchive::EM_ constants.
passwordOptional password, default used when missing.
   Returns TRUE on success or FALSE on failure.
  
This example creates a ZIP file archive test.zip and add the file test.txt encrypted using the AES 256 method.
Example #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";
}
?>
Note:
This function is only available if built against libzip ≥ 1.2.0.