首页 > PHP开发 > php中级 > PHP扩展之压缩与归档扩展4——Zlib
2014
11-07

PHP扩展之压缩与归档扩展4——Zlib

大多数文件系统函数使用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

编程技巧