Замените заголовки gzip сжатого файла на заголовки zlib

Я знаю, что могу сжать с помощью PHP

gzcompress($contents, 9);

Но мне не нравятся результаты. Даже с последней версией zlib я получаю файл большего размера, чем 7zip (конечно, выкачанный).

Итак, как заменить заголовки gzip заголовками zlib (с контрольной суммой ADLER32)

0

Решение

Ваш вопрос не ясен, но я думаю, что вы спрашиваете, как взять вывод 7zip gzip и преобразовать его в zlib.

Вам нужно будет расшифровать заголовок gzip и удалить его. (Вероятно, это 10 байт, но это может быть больше, если в нем есть имя файла.) RFC 1952 описывает формат заголовка. Затем вы должны добавить двухбайтовый заголовок zlib, например 0x78 0xda.

Затем удалите последние восемь байтов с конца и добавьте четырехбайтовую сумму несжатых данных Adler-32 в порядке с прямым порядком байтов. Вам нужно будет вычислить это самостоятельно, где это описано в RFC 1950, или вы можете адаптировать реализация zlib.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]