Google

NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.7">

CXIIzlib圧縮関数

このモジュールは、Jean-loup Gailly および Mark Adler による 透過的に gzip (.gz) で圧縮されたファイルを読み書きするための zlib の関数を使用します。 このモジュールを使用するには、zlib バージョン 1.0.9 以上を 使用する必要があります。

このモジュールは、gzip で圧縮されたファイルで動作する版の多くの filesystem 関数を含んでいます。 (非圧縮のファイルも使用可能ですが、ソケットは使用できません)

注意 バージョン4.0.4-devで.gzファイルに対応したfopen-wrapperを導入しました。 これによりfopen()に'zlib:'をプレフィクスとした ファイル名又はパス名を渡すことで、通常のf*()関数で圧縮されたファイルに 透過的にアクセスすることが出来ます。

この機能を利用するにはfopencookie()関数を提供する Cのランタイムライブラリが必要です。現在私の知る限りでは、GNU libcが この機能を提供する唯一のライブラリです。

簡単なコードの例

テンポラリファイルをオープンし、テスト用文字列を書きこみ、 続いて、このファイルの内容を2回出力します。

例 1簡単な Zlib の例

<?php
$filename = tempnam ('/tmp', 'zlibtest').'.gz';
print "<html>\n<head></head>\n<body>\n<pre>\n";
$s = "Only a test, test, test, test, test, test, test, test!\n";
// 最大限の圧縮を指定して書きこみ用にファイルをオープン
$zp = gzopen ($filename, "w9");
// 文字列をファイルに書きこむ
gzwrite ($zp, $s);
// ファイルを閉じる
gzclose ($zp);
// 読みこみ用にファイルをオープン
$zp = gzopen ($filename, "r");
// 3文字読みこむ
print gzread ($zp, 3);
// ファイルの終端まで読み、閉じる
gzpassthru ($zp);
print "\n";
// ファイルをオープンし、内容を出力する (2回目)。
if (readgzfile ($filename) != strlen ($s)) {
        echo "Error with zlib functions!";
}
unlink ($filename);
print "</pre>\n</h1></body>\n</html>\n";
?>
目次
gzclose -- 開かれたgzファイルへのポインタを閉じる
gzcompress -- 文字列をdeflate圧縮する
gzdeflate -- 文字列を deflate 圧縮する
gzencode -- gzip 圧縮された文字列を作成
gzeof -- gz ファイルポインタにおいてファイル終端を調べる
gzfile -- gzファイル全体を配列に読み込む
gzgetc -- gz ファイルへのポインタから文字を得る
gzgets -- ファイルポインタから 1 行を得る
gzgetss --  gzファイルへのポインタから1行を得て、HTMLタグを取り除く
gzinflate -- deflate圧縮された文字列を解凍する
gzopen -- gz ファイルを開く
gzpassthru --  gzファイルへのポインタから残りのデータ全部を出力する
gzputs -- gz ファイルへのポインタに書き込む
gzread -- バイナリ対応のgzファイル読み込み
gzrewind -- gz ファイルポインタの示す位置を元に戻す
gzseek -- gz ファイルポインタの位置を移動する
gztell -- gzファイルポインタの読み込み/書き込み位置を返します
gzuncompress -- deflate圧縮された文字列を解凍する
gzwrite -- バイナリ対応のgzファイル書き込み
readgzfile -- gz ファイルを出力する