PHPでいくつかのファイルをgzipで圧縮したい..
出力ファイルをファイルに保存すると、正常に機能します。ファイルを開くと、次のようになります。
しかし、出力が文字列として返される場合はそうではありません..すると、開いたファイルは次のようになります..gzipファイルの中にtarファイルが表示されるのはなぜですか?
public function compress(){
if($this->stream){
return gzencode($this->data, 9);
}
else{
$gz = gzopen('test.tar.gz', 'w9');
gzwrite($gz, $this->data);
gzclose($gz);
}
}
文字列出力とともにブラウザに送信されるヘッダー
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.$filename.'"');