PHP マニュアル
前のページ |  | 次のページ

# 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";
    ?>

前のページ | ホーム | 次のページ
zip_read | 上に戻る | gzclose