大多数文件系统函数使用gzip来压缩文件,本模块可以帮助透明读取gzip压缩文件。
在php中zlib支持默认并没有开启。需要安装配置 php的时候使用 --with-zlib[=dir]。
下面这个例子开启了一个临时文件来写入测试字符串,然后两次打印文件内容。
example #1 简单的zlib示例
<?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";
?>
相关函数:
gzclose — close an open gz-file pointer
gzcompress — compress a string
gzdecode — decodes a gzip compressed string
gzdeflate — deflate a string
gzencode — create a gzip compressed string
gzeof — test for eof on a gz-file pointer
gzfile — read entire gz-file into an array
gzgetc — get character from gz-file pointer
gzgets — get line from file pointer
gzgetss — get line from gz-file pointer and strip html tags
gzinflate — inflate a deflated string
gzopen — open gz-file
gzpassthru — output all remaining data on a gz-file pointer
gzputs — 别名 gzwrite
gzread — binary-safe gz-file read
gzrewind — rewind the position of a gz-file pointer
gzseek — seek on a gz-file pointer
gztell — tell gz-file pointer read/write position
gzuncompress — uncompress a compressed string
gzwrite — binary-safe gz-file write
readgzfile — output a gz-file
zlib_decode — uncompress any raw/gzip/zlib encoded data
zlib_encode — compress data with the specified encoding
zlib_get_coding_type — returns the coding type used for output compression