このモジュールにより gzip (.gz) で圧縮されたファイルを読み書きすることが可能となります。 この際、ファイルシステム 関数の gzip 圧縮対応版 (非圧縮ファイルも扱えますが、 ソケットは扱えません)を使用します。
注意: バージョン 4.0.4 で .gz ファイルに対応した fopen のラッパー を導入しました。 fopen() に渡すファイル名または パス名に zlib: をつけると、通常の f*() ファイルアクセス関数を使用して圧縮ファイルに透過的にアクセスすることが できます。
PHP 4.3.0 において、';' を含むファイル名との曖昧さを避けるため zlib: は compress.zlib:// に変更されました。fopencookie() 関数は もはや必要ありません。詳細な情報は、 圧縮ストリーム項付録O にあります。
このモジュールは、Jean-loup Gailly および Mark Adler による zlib の関数を使用します。 このモジュールを使用するには、zlib バージョン >= 1.0.9 を使用する必要があります。
PHPにおけるZlibサポートは、デフォルトでは利用できません。
Zlibサポートを有効にするには、PHPのコンパイル時にconfigureの
オプションに--with-zlib[=DIR]
を
指定してコンパイルする必要があります。
Windows 版の PHP には この拡張モジュールのサポートが組み込まれています。これらの関数を使用 するために拡張モジュールを追加でロードする必要はありません。
注意: PHP 4.3.0 以降、zlib モジュールは Windows 用 php バイナリにビルトインされています。
php.ini の設定により動作が変化します。
zlib 拡張モジュールは、 ブラウザがサポートする場合にページを透過的に圧縮するオプションを提供します。 ここで、 設定ファイル php.ini のオプションには、以下の 3 種類があります。
表 1. Zlib設定オプション
名前 | デフォルト | 変更の可否 | 変更履歴 |
---|---|---|---|
zlib.output_compression | "0" | PHP_INI_ALL | PHP 4.0.5 から利用可能 |
zlib.output_compression_level | "-1" | PHP_INI_ALL | PHP 4.3.0 から利用可能 |
zlib.output_handler | "" | PHP_INI_ALL | PHP 4.3.0 から利用可能 |
以下に設定ディレクティブに関する 簡単な説明を示します。
zlib.output_compression
boolean/integer透過的なページ圧縮を行うかどうか。php.ini または Apache の設定でこのオプションが、"On" に設定された場合、 ブラウザが "Accept-Encoding: gzip" または "deflate" ヘッダを送信する場合に、ページは圧縮されます。 "Content-Encoding: gzip" (および "deflate") と "Vary: Accept-Encoding" ヘッダが出力に追加されます。 実行時、何らかのデータを送出する前にのみ設定することが可能です。
このオプションも論理値 "On"/"Off" のかわりに整数値をとることができ、 これを用いて出力のバッファサイズ (デフォルトは 4KB) を設定することができます。
注意: このオプションに 'On' を設定した場合、 output_handler を空にする必要があります! かわりに zlib.output_handler を使用する必要があります。
zlib.output_compression_level
integer透過的出力圧縮で使用される圧縮レベル。
zlib.output_handler
stringzlib.output_compression が有効な場合、 他の出力ハンドラを指定することはできません。 この設定は、output_handler と同じですが、順番が異なります。
以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。
テンポラリファイルをオープンし、テスト用文字列を書きこみ、 続いて、このファイルの内容を 2 回出力します。