Home > PHP > PHPでGZIPのファイルを解凍する

PHPでGZIPのファイルを解凍する

  • Posted by: zaru
  • 2008年1月 8日 16:17
  • PHP

HTTP/Request.php を使ってぬるぬると色々なサイトのヘッダーを覗いてファイルをダウンロードするスクリプトを書いていたら、ダウンロードしたのは良いけど正常に開けない、壊れたファイルになってしまう事があった。

ヘッダを見てみると content-encoding が gzip になっていました。Webサーバから送信するときに圧縮してやるアレです。なので、ダウンロードしたファイルが gzip だった場合に解凍する方法をメモ。

Zlib関数を使う

使用するのは gzopen / gzread / gzclose のZlib関数 3つと、読み取ったデータを書き込む fopen / fwrite(fputs) / fclose のファイルシステム関数 3つだけです。

//リネームする
rename('example.gif','example.gz');

//圧縮ファイルを開く
$zd = gzopen('example.gz', "r");
$contents = gzread($zd, 1000000);
gzclose($zd);

//解凍したデータを書き込む
$fp = fopen('example.gif',"wt");
fputs($fp,$contents);
fclose($fp);

たったこれだけです。Zlib関数も基本的にはファイルシステム関数と使い方が同じなので簡単です。

Comments:0

Comment Form

Trackbacks:0

TrackBack URL for this entry
http://blog.tofu-kun.org/mt-tb.cgi/368
Listed below are links to weblogs that reference
PHPでGZIPのファイルを解凍する from Webプログラマー+WebデザイナーなZARU日記

Home > PHP > PHPでGZIPのファイルを解凍する

Profile

zaru

Name : zaru

Webプログラマ+Webデザイナで、Webディレクタやってます。Twitterやっているので、ぜひフォローしてやってくださいませ。Twitter - zaru。また、そのほかのプロフィールについては、iddy - zaruを見てください。

Search
Feeds
Others

Return to page top