|
CLXX. Zlib Compression Functions
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 壓縮流 在 附錄 M.
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
版本已經內建該增加模組的支援。無需加載任何附加增加庫即可使用這些函數。 注:
Builtin 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. |
有關 PHP_INI_* 常量進一步的細節與定義參見 附錄 G。
以下是配置選項的簡要解釋。
- zlib.output_compression
boolean/integer
Whether 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
integer
Compression level used for transparent output compression.
- zlib.output_handler
string
You 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.
以下常量由本增加模組定義,因此只有在本增加模組被編譯到
PHP 中,或是在運行時被動態加載後才有效。
This example opens a temporary file and writes a test string
to it, then it prints out the content of this file twice.
例子 1. Small Zlib Example
<?php
$filename = tempnam('/tmp', 'zlibtest') . '.gz'; echo "<html>\n<head></head>\n<body>\n<pre>\n"; $s = "Only a test, test, test, test, test, test, test, test!\n";
// open file for writing with maximum compression $zp = gzopen($filename, "w9");
// write string to file gzwrite($zp, $s);
// close file gzclose($zp);
// open file for reading $zp = gzopen($filename, "r");
// read 3 char echo gzread($zp, 3);
// output until end of the file and close it. gzpassthru($zp); gzclose($zp);
echo "\n";
// open file and print content (the 2nd time). if (readgzfile($filename) != strlen($s)) { echo "Error with zlib functions!"; } unlink($filename); echo "</pre>\n</body>\n</html>\n";
?>
|
|
| |