CIXzlib圧縮関数
このモジュールは、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";
?> |
|