Используйте функции Zlib.
Прочтите документацию для подробностей
Пример, взятый прямо со связанной страницы:
<?php
$filename = tempnam('/tmp', 'zlibtest') . '.gz';
$s = "Only a test, test, test, test, test, test, test, test!\n";
/***** WRITING THE FILE *****/
// open file for writing with maximum compression
$zp = gzopen($filename, "w9");
// write string to file
gzwrite($zp, $s);
// close file
gzclose($zp);
/***** READING IT *****/
// open file for reading
$zp = gzopen($filename, "r");
// read 3 char
echo gzread($zp, 3);
// output until end of the file and close it.
gzpassthru($zp);
gzclose($zp);
/***** ANOTHER WAY TO READ (and print) IT *****/
// open file and print content (the 2nd time).
if (readgzfile($filename) != strlen($s)) {
echo "Error with zlib functions!";
}
?>
Надеюсь, это поможет.