|
|
CXI. Zlib Compression FunctionsBevezet�s
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).
Megjegyz�s:
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
prepend the filename or path with a 'zlib:' prefix when calling
fopen().
In version 4.3.0, this special prefix has been changed to 'zlib://'
to prevent ambiguities with filenames containing ':'.
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.
K�vetelm�nyek
This module uses the functions of
by Jean-loup Gailly and Mark Adler. You have to use a zlib
version >= 1.0.9 with this module.
Fut�sidej� be�ll�t�sok
The zlib extension offers the option to transparently compress
your pages on-the-fly, if the requesting browser supports
this. Therefore there are two options in the configuration file php.ini.
T�bl�zat 1. Zlib Configuration Options Name | Default | Changeable |
---|
zlib.output_compression | "0" | PHP_INI_ALL | zlib.output_compression_level | "-1" | PHP_INI_ALL |
For further details and definition of the PHP_INI_* constants see
ini_set().
Here is a short explanation of the configuration directives.
- 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.
You can use ini_set() to disable this in
your script if the headers aren't already sent. If you output
a "Content-Type: image/" header the compression is disabled,
too (in order to circumvent a Netscape bug). You can reenable
it, if you add "ini_set('zlib.output_compression', 'On')"
after the header call which added the image content-type.
This option also accepts integer values instead of boolean
"On"/"Off", using this you can set the output buffer size.
- zlib.output_compression_level
integer
Compression level used for transparent output compression.
Er�forr�s t�pusokEz a kiterjeszt�s semmilyen er�forr�s
t�pust nem defini�l. El�re defini�lt �lland�k
Az itt list�zott �lland�kat ez a kiterjeszt�s
defini�lja, �s csak akkor el�rhet�ek, ha az adott
kiterjeszt�s be van ford�tva a PHP-be, vagy
dinamikusan bet�lt�tt. P�ld�k
This example opens a temporary file and writes a test string
to it, then it prints out the content of this file twice.
P�lda 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";
?> |
|
- Tartalom
- gzclose -- Close an open gz-file pointer
- gzcompress -- Compress a string
- gzdeflate -- Deflate a string
- gzencode -- Create a gzip compressed string
- gzeof -- Test for end-of-file 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 -- Write to a gz-file pointer
- 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 deflated string
- gzwrite -- Binary-safe gz-file write
- readgzfile -- Output a gz-file
User Contributed Notes Zlib Compression Functions |
|
[email protected]
19-Apr-2001 01:02 |
|
An alternate way to handle gzip compression is to let the mod_gzip module
of apache handle it. This seems to contradict the tutorial on
phpbuilder.com saying that it won't compress php (or any dynamic) output,
but mod_gzip as of version 1.3.17.1a works well for me.
Here is
an example of an httpd.conf setup:
<IfModule
mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk
Yes
mod_gzip_minimum_file_size
300
mod_gzip_maximum_file_size 0
mod_gzip_maximum_inmem_size
100000
mod_gzip_keep_workfiles No
mod_gzip_temp_dir
/tmp
mod_gzip_item_include file
\.html$
mod_gzip_item_include file
\.jsp$
mod_gzip_item_include file
\.php$
mod_gzip_item_include file
\.pl$
mod_gzip_item_include mime
^text/.*
mod_gzip_item_include mime
^application/x-httpd-php
mod_gzip_item_include mime
^httpd/unix-directory$
mod_gzip_item_include handler
^perl-script$
mod_gzip_item_include handler
^server-status$
mod_gzip_item_include handler
^server-info$
mod_gzip_item_exclude mime
^image/.*
</IfModule>
This will automatically compress
all output of your files with the .php extention or the x-httpd-php mime
type. Be sure to have dechunk set to Yes.
|
|
|
| |