From 369f268b903bf4a97841f1e936cfc956a68672b1 Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Pueyo Date: Fri, 4 Jan 2013 21:47:36 +0100 Subject: [PATCH] Improved compression --- src/classes/ChunkParser.class.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/classes/ChunkParser.class.php b/src/classes/ChunkParser.class.php index 223a9e44d..9fa7e2fc5 100644 --- a/src/classes/ChunkParser.class.php +++ b/src/classes/ChunkParser.class.php @@ -61,6 +61,10 @@ class ChunkParser{ public function loadFile($file){ if(ZLIB_EXTENSION === true and file_exists($file.".gz")){ $this->raw = gzinflate(file_get_contents($file.".gz")); + $r = @gzinflate($this->raw); + if($r !== false and $r != ""){ + $this->raw = $r; + } @unlink($file.".gz"); file_put_contents($file, $this->raw); }elseif(!file_exists($file)){ @@ -166,7 +170,10 @@ class ChunkParser{ flock($fp, LOCK_UN); fclose($fp); if(ZLIB_EXTENSION === true){ - file_put_contents($this->file .".gz", gzdeflate(file_get_contents($this->file), 9)); + $original = filesize($this->file); + file_put_contents($this->file .".gz", gzdeflate(gzdeflate(file_get_contents($this->file),9),9)); //Double compression for flat maps + $compressed = filesize($this->file .".gz"); + console("[DEBUG] Saved chunks.dat.gz with ".round(($compressed/$original)*100, 2)."% (".round($compressed/1024, 2)."KB) of the original size", true, true, 2); if($final === true){ @unlink($this->file); }