public function buildGzipPackage($outputFile, $inputFiles, Compressor $compressor = NULL)
 {
     $this->buildPackage($outputFile, $inputFiles);
     if (isset($compressor)) {
         $compressor->compress($outputFile, $outputFile . '_min');
     }
     $this->buildGzip($outputFile, $outputFile . '_min');
 }
示例#2
0
 /**
  * @param string $rawFile
  * @dataProvider testFiles
  */
 public function testCompress(string $rawFile)
 {
     $raw = file_get_contents($rawFile);
     $compressor = new Compressor();
     $compressedFile = tempnam(sys_get_temp_dir(), 'squeeze-test-' . date('His') . '-compressed');
     $decompressedFile = tempnam(sys_get_temp_dir(), 'squeeze-test-' . date('His') . '-decompressed');
     $this->output('Compressing ' . $rawFile);
     $compressed = $compressor->compress($raw, (new Progress())->listen(function ($percentage) {
         static $lastBand = 0;
         $thisBand = floor($percentage * 10) / 10;
         if ($thisBand > $lastBand) {
             $this->output(round($thisBand * 100) . '%');
         }
         $lastBand = $thisBand;
     }));
     file_put_contents($compressedFile, $compressed);
     $this->assertLessThan(filesize($rawFile), filesize($compressedFile));
     $this->output('Compression ration ' . filesize($compressedFile) . '/' . filesize($rawFile) . ' = ' . round(filesize($compressedFile) / filesize($rawFile), 5) * 100 . '%');
     $this->output('Decompressing');
     $decompressed = $compressor->decompress($compressed);
     file_put_contents($decompressedFile, $decompressed);
     $this->assertEquals($raw, $decompressed);
 }
示例#3
0
文件: Inflate.php 项目: rgantt/japha
    private $filename;
    private $total = array();
    function __construct($filename)
    {
        if (file_exists($filename)) {
            $this->filename = $filename;
        } else {
            throw new Exception($filename . " does not exist!");
        }
    }
    public function compress()
    {
        $w = fopen($this->filename, "r");
        while (!feof($w)) {
            $this->total[] = gzencode(fgets($w, 4096), 5);
        }
    }
    public function saveFile($filename)
    {
        $s = gzopen($filename, "w");
        foreach ($this->total as $key => $value) {
            gzputs($s, $key, 4096);
        }
    }
}
$m = new Melder(array("pdbc.php", "all.php", "xml.php"));
$m->mergeFiles();
$m->saveFile("newShizzy.shizzle");
$c = new Compressor("newShizzy.shizzle");
$c->compress();
$c->saveFile("dsh");