This module enables you to transparently read and write gzip (.gz) compressed files, through versions of most of the filesystem functions which work with gzip-compressed files (and uncompressed files, too, but not with sockets).
注意: Version 4.0.4 introduced a fopen-wrapper for .gz-files, so that you can use a special zlib: URL to access compressed files transparently using the normal f*() file access functions if you prefix the filename or path with zlib: when calling fopen(). This feature requires a C runtime library that provides the fopencookie() function. Up to now the GNU libc seems to be the only library that provides this feature.
In PHP 4.3.0, zlib: has been changed to compress.zlib:// to prevent ambiguities with filenames containing ':' characters. The fopencookie() function is not longer required. More information is available in the section about the 节 called 压缩流 于 附录 N.
This module uses the functions of zlib by Jean-loup Gailly and Mark Adler. You have to use a zlib version >= 1.0.9 with this module.
Zlib support in PHP is not enabled by default. You will need to
configure PHP --with-zlib[=DIR]
PHP 的 Windows 版本已经内置该扩展模块的支持。无需加载任何附加扩展库即可使用这些函数。
注意: Built-in support for zlib on Windows is available with PHP 4.3.0.
这些函数的行为受 php.ini 的影响。
The zlib extension offers the option to transparently compress your pages on-the-fly, if the requesting browser supports this. Therefore there are three options in the configuration file php.ini.
表 1. Zlib Configuration Options
Name | Default | Changeable | Changelog |
---|---|---|---|
zlib.output_compression | "0" | PHP_INI_ALL | Available since PHP 4.0.5. |
zlib.output_compression_level | "-1" | PHP_INI_ALL | Available since PHP 4.3.0. |
zlib.output_handler | "" | PHP_INI_ALL | Available since PHP 4.3.0. |
以下是配置选项的简要解释。
zlib.output_compression
boolean/integerWhether to transparently compress pages. If this option is set to "On" in php.ini or the Apache configuration, pages are compressed if the browser sends an "Accept-Encoding: gzip" or "deflate" header. "Content-Encoding: gzip" (respectively "deflate") and "Vary: Accept-Encoding" headers are added to the output. In runtime, it can be set only before sending any output.
This option also accepts integer values instead of boolean "On"/"Off", using this you can set the output buffer size (default is 4KB).
注意: output_handler must be empty if this is set 'On' ! Instead you must use zlib.output_handler.
zlib.output_compression_level
integerCompression level used for transparent output compression.
zlib.output_handler
stringYou cannot specify additional output handlers if zlib.output_compression is activated here. This setting does the same as output_handler but in a different order.
This example opens a temporary file and writes a test string to it, then it prints out the content of this file twice.