#gzip #crc
#gzip #crc
Вопрос:
У меня есть функция, которая хранит данные в gzcompressed файлах, например
function savedata($fileName,amp;$data){
file_put_contents($filename,gzcompress($data));
}
Я хочу оптимизировать и не сохранять, если данные такие же, как в уже сохраненном gzcompressed файле.
Я могу открыть весь файл, распаковать его и сравнить с $data
, но я думаю, что должен быть какой-то другой способ.
Вероятно, данные gz-d содержат некоторый crc или что-то в этом роде, поэтому я могу просто сжать данные, извлечь из них crc и сравнить его с crc в уже существующем файле или что-то в этом роде.
Поэтому я просто хочу оптимизировать проверку файла и $data
изменений, чтобы сделать его быстрее.
Комментарии:
1. PHP? Вы должны указать язык или, по крайней мере, иметь тег.
Ответ №1:
gzcompress()
в PHP выполняется сжатие в формат zlib, а не в формат gzip.
Каждый поток zlib заканчивается четырехбайтовым контрольным значением, но не CRC. Вы можете сравнить их, чтобы увидеть, отличаются ли два потока. Однако, если два значения проверки совпадают, вы не можете сделать вывод, что потоки одинаковы.