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

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

  • Posted by: ZARU
  • 2008/01/08
  • 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

コメントフォーム:コメントはお気軽にご利用くださいませ。

画像の中に見える文字を入力してください。

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のファイルを解凍する

ブログパーツ
Search
Feeds

Return to top