Exemplo n.º 1
0
 /**
  * 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;
     }
 }