PHP Manual
Prev |  | Next

# CVIII. Zlib Compression Functions

This module uses the functions of zlib by Jean-loup Gailly and Mark Adler to transparently read and write gzip (.gz) compressed files. You have to use a zlib version >= 1.0.9 with this module.

This module contains versions of most of the filesystem functions which work with gzip-compressed files (and uncompressed files, too, but not with sockets).

> Note: The current CVS version 4.0.4-dev introduces 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 prepend the filename or path with a 'zlib:' prefix when calling fopen().

> This feature requires a C runtime library that provides the `fopencookie()` function. To my current knowledge the GNU libc is the only library that provides this feature.

# Small code example

Opens a temporary file and writes a test string to it, then it prints out the content of this file twice.

Example 1. Small Zlib Example
    <?php

    $filename = tempnam ('/tmp', 'zlibtest').'.gz';
    print "<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
    print gzread($zp, 3);

    // output until end of the file and close it.
    gzpassthru($zp);

    print "\n";

    // open file and print content (the 2nd time).
    if (readgzfile($filename) != strlen($s)) {
            echo "Error with zlib functions!";
    }
    unlink($filename);
    print "</pre>\n</h1></body>\n</html>\n";

    ?>

Prev | Home | Next
zip_read | Up | gzclose