このモジュールによりgzip (.gz)で圧縮されたファイルを読み書きする ことが可能となります。 この際、ファイルシステム関 数のgzip圧縮対応版(非圧縮ファイルも扱えますが、ソケットは扱えませ ん)を使用します。
注意 バージョン4.0.4-devで.gzファイルに対応したfopen-wrapperを導入しました。 これによりfopen()に'zlib:'をプレフィクスとした ファイル名又はパス名を渡すことで、通常のf*()関数で圧縮されたファイルに 透過的にアクセスすることが出来ます。
4.3.0において、';'を含むファイル名との曖昧さを避けるためこの特別 なプレフィックスは'zlib://'に変更されました。
この機能を利用するにはfopencookie()関数を提供する Cのランタイムライブラリが必要です。現在私の知る限りでは、GNU libcが この機能を提供する唯一のライブラリです。
このモジュールは、Jean-loup Gailly および Mark Adler による zlib の関数を使用します。 このモジュールを使用するには、zlib バージョン 1.0.9 以上を 使用する必要があります。
Zlib support in PHP is not enabled by default. You will need to configure PHP --with-zlib[=DIR]
Windows版のPHPにはこの拡張モジュールのサポートが組み込まれています。これらの関数を使用するために拡張モジュールを追加でロードする必要はありません。
注意 Builtin support for zlib is available with PHP 4.3.0.
これらの関数の動作は、php.iniの設定により変化します。
zlib拡張モジュールは、ブラウザがサポートする場合にページを透過的に圧 縮するオプションを提供します。 ここで、 設定ファイル php.ini のオプションには、以下の3種類があります。
表 1Zlib設定オプション
名前 | デフォルト | 変更の可否 |
---|---|---|
zlib.output_compression | "Off" | PHP_INI_ALL |
zlib.output_compression_level | "-1" | PHP_INI_ALL |
zlib.output_handler | "" | PHP_INI_ALL |
以下に設定ディレクティブに関する簡単な説明を示します。
透過的なページ圧縮を行うかどうか。php.iniまたはApacheの設定で このオプションが、"On"に設定された場合、 ブラウザが"Accept-Encoding: gzip"または"deflate"ヘッダを送信する 場合に、ページは圧縮されます。 "Content-Encoding: gzip" (および"deflate")と"Vary: Accept-Encoding"ヘッダが出力に追加されます。
ヘッダが未送信の場合、スクリプト内でこのオプションを無効にするた めにini_set()を使用することが可能です。 "Content-Type: image/"ヘッダを出力した場合、(Netscapeのバグのせ いで)圧縮が無効となります。 image content-typeを追加するヘッダコールの後、 "ini_set('zlib.output_compression', 'On')"を追加した場合、 再度有効にすることができます。
このオプションも論理値"On"/"Off"のかわりに整数値をとることができ、 これを用いて出力のバッファサイズ(デフォルトは4KB)を設定すること ができます。
注意 このオプションに'On'を設定した場合、 output_handlerを空に する必要があります! かわりにzlib.output_handlerを使用する必要が あります。
透過的出力圧縮で使用される圧縮レベル。
zlib.output_compressionが有効な場合に他の出力ハンドラを指定する ことはできません。この設定は、 output_handlerと同じですが、順番が異なります。
テンポラリファイルをオープンし、テスト用文字列を書きこみ、 続いて、このファイルの内容を2回出力します。