PHP ZipArchive, как увеличить степень сжатия? - PullRequest
0 голосов
/ 13 апреля 2020

Я использую PHP ZipArchive для сжатия папок в PHP.

Файлы и подпапки хорошо добавлены в архив, но я хотел бы знать, как повысить уровень сжатия архив.

Следующий пример основан на примере этого коммита: https://github.com/php/php-src/commit/3a55ea02

$zip = new ZipArchive();
$filename = "output/a.zip";

if (!$zip->open($filename, ZIPARCHIVE::CREATE | ZipArchive::OVERWRITE)) {
    exit("cannot open <$filename>\n");
}

$zip->addFromString("testfilephp.txt", "#1 This is a test string added as testfilephp.txt.\n");
$zip->addFile('output/done/monday/pdftest.pdf', 'test.pdf');

$zip->setCompressionName("test.pdf", ZipArchive::CM_DEFLATE, 6);
$zip->setCompressionIndex(2, ZipArchive::CM_DEFLATE, 6);

$zip->close();

Сжатие не достаточно.

  • Вес архива: 7 690 288 байт
  • Файл PDF "output / done / monday / pdftest.pdf" вес: 7 809 870 байт

Для этого примера я хотел бы, чтобы вес архива был менее 5 000 000 байт.

У кого-нибудь есть решение для определения реального уровня сжатия?

Заранее спасибо за вашу помощь и хорошей недели .

Микаэль

...