PHPでgzopen()、gzwrite()、gzclose()を使用して「.gz」ファイルを書き出したのですが、
それをダウンロードしてアーカイバ「+Lhaca」で解凍すると、
「問題が発生したため、Lhaca.exeを終了します。ご不便を・・・」とエラーが表示され
解凍できません。
そもそも圧縮時にファイルの中身に元のファイル名を保存しなくていいんでしょうか?
【アーカイブソフトでの圧縮・解凍】
a.txt → 圧縮 → a.txt.gz
a.txt.gz → ファイル名変更 → b.txt.gz
b.txt.gz → 解凍 → a.txt
このように、圧縮したファイル名を変更しても、解凍すると自動的に元のファイル名にちゃんと戻るということは圧縮ファイルの中身に元のファイル名が保存されているのではないのでしょうか?
でも、PHPの書き出しでは、元のファイル名を、圧縮ファイルの中身に含める方法の記述はありません。
エラーの原因と何か関係がありますか。
なお、リモートログインして「gzip」コマンドで解凍するとエラーなく解凍できます。
FTPでダウンロードするときは、もちろんバイナリモードです。
エラーの心当たりがある方、よろしくお願いいたします。
gzipコマンドで解凍できたということは、PHPで作ったファイルの形式は、問題ない気がします。
おそらく、+Lhacaの何らかの不具合ではないでしょうか。
私の環境では、+Lhaca 1.19でgzip形式の解凍は問題なく行えました。
一旦アンインストールして最新版をインストールするか、別の解凍ソフト(Lhazとか)をインストールしてみてはいかがでしょうか。