Могу ли я изменить уровень сжатия ZipArchive?

Можно ли изменить уровень сжатия и / или метод, используемый классом ZipArchive ?

В настоящее время это невозможно, в соответствии с запросом функции отчета об ошибке на php.net .

Как указано в предыдущем посте, вы не можете сделать это с помощью Zip. Если определение уровня сжатия более важно, чем метод архивирования, то PHP zlib позволяет:

 string gzcompress ( string $data [, int $level = -1 ] ) 

$ level – Уровень сжатия. Может быть задано как 0 без сжатия до 9 для максимального сжатия.

http://php.net/manual/en/book.zlib.php

Действительно, это невозможно даже в 2014 году, поэтому мне пришлось использовать функцию «exec» с помощью команды zip для linux:

 exec("cd \"".$the_directory_you want_to_zip."\" && zip -0 -r \"".$path_zip."\" ."); 

Кажется, он был добавлен / добавлен в файлы перераспределения в PHP 7: ZipArchive :: setCompressionName и ZipArchive :: setCompressionIndex . Не испытано.

PS: Причина, по которой она настроена индивидуально для файлов, а не для всего архива, заключается в том, что файлы внутри ZIP-архива фактически являются самими ZIP-файлами и просто «склеены» вместе с одним «главным ZIP-архивом».