Можно ли изменить уровень сжатия и/или метод, используемый классом ZipArchive
?
Могу ли я изменить уровень сжатия ZipArchive?
Ответ 1
В настоящее время это невозможно, в соответствии с открыть запрос отчета об ошибке на php.net.
Ответ 2
Как указано в предыдущем сообщении, вы не можете сделать это с помощью Zip. Если определение уровня сжатия более важно, чем метод архивирования, то PHP zlib позволяет:
string gzcompress ( string $data [, int $level = -1 ] )
$level - Уровень сжатия. Может быть задано как 0 без сжатия до 9 для максимального сжатия.
Ответ 3
В самом деле, это невозможно даже в 2014 году, поэтому мне пришлось использовать функцию "exec" с помощью команды zip для linux:
exec("cd \"".$the_directory_you want_to_zip."\" && zip -0 -r \"".$path_zip."\" .");
Ответ 4
Кажется, что он был добавлен/добавлен в файлы перераспределения в PHP 7: ZipArchive:: setCompressionName и ZipArchive:: setCompressionIndex. Не тестировалось.
PS: Причина, по которой она задана отдельно для файлов, а не для всего архива, состоит в том, что файлы внутри ZIP-архива фактически являются самими ZIP файлами и просто "склеены" вместе с одним "главным ZIP-архивом".