Я знаю, что могу сжать с помощью PHP
gzcompress($contents, 9);
Но мне не нравятся результаты. Даже с последней версией zlib я получаю файл большего размера, чем 7zip (конечно, выкачанный).
Итак, как заменить заголовки gzip заголовками zlib (с контрольной суммой ADLER32)
Ваш вопрос не ясен, но я думаю, что вы спрашиваете, как взять вывод 7zip gzip и преобразовать его в zlib.
Вам нужно будет расшифровать заголовок gzip и удалить его. (Вероятно, это 10 байт, но это может быть больше, если в нем есть имя файла.) RFC 1952 описывает формат заголовка. Затем вы должны добавить двухбайтовый заголовок zlib, например 0x78 0xda.
Затем удалите последние восемь байтов с конца и добавьте четырехбайтовую сумму несжатых данных Adler-32 в порядке с прямым порядком байтов. Вам нужно будет вычислить это самостоятельно, где это описано в RFC 1950, или вы можете адаптировать реализация zlib.
Других решений пока нет …