/** * GZIPs the temp file * * From http://stackoverflow.com/questions/6073397/how-do-you-create-a-gz-file-using-php * Based on function by Kioob at: * http://www.php.net/manual/en/function.gzwrite.php#34955 * * @param string $source Path to file that should be compressed * @param integer $level GZIP compression level (default: 6) * @return boolean true if operation succeeds, false on error */ public function gzip_compress($level = 6) { if ($this->tempfile === NULL) { return; } $source = $this->tempfile; $file = new storage($source); $dest = $file->begin(); $mode = 'wb' . $level; $error = false; $chunk_size = 1024 * 512; if ($fp_out = gzopen($dest, $mode)) { if ($fp_in = fopen($source, 'rb')) { while (!feof($fp_in)) { gzwrite($fp_out, fread($fp_in, $chunk_size)); } fclose($fp_in); } else { $error = true; } gzclose($fp_out); } else { $error = true; } if ($error) { return false; } else { $file->commit(); return true; } }