Updated April 18, 2023
Introduction to PHP zlib
In order to be able to read and write the files that compressed using gzip in PHP, we make use of a module called PHP zlib module. By making use of zlib module in PHP, the contents are provided in a faster manner to the end users because the data streams are compressed and to enable the zlib module in our program, we are supposed to add the line zlib.output_compression = on in the program and zlib module must be enabled compulsorily in certain applications such as pligg, and two constants have been defined by this module, namely FORCE_GZIP and FORCE_DEFLATE, which are available when the extension is loaded manually at runtime.
Syntax to declare zlib module in PHP:
zlib.output_compression = on
Working of zlib Module in PHP
- In order to be able to read and write the files that compressed using gzip in PHP, we make use of a module called PHP zlib module.
- By making use of zlib module in PHP, the contents are provided in a faster manner to the end users because the data streams are compressed.
- To enable the zlib module in our program, we are supposed to add the line zlib.output_compression = on in the program.
- zlib module must be enabled compulsorily in certain applications such as pligg.
- Two constants have been defined by the zlib module, namely FORCE_GZIP and FORCE_DEFLATE, which are available when the extension is loaded manually at runtime.
Examples of PHP zlib
Given below are the examples of PHP zlib:
Example #1
PHP program to illustrate the zlib module to read and write to the files that have been compressed using gzip transparently.
Code:
<html>
<body>
<?php
#creating a temporary file which is compressed by gzip using tempnum function and storing the path to the file location in a variable called newfile
$newfile = tempnam('/tmp','exfile') . '.gz';
#storing the contents to be written to the file in a variable called data
$data = "Welcome to PHP\n";
#opening the gzip compressed file using gzopen function
$fileopen = gzopen($newfile, "w9");
#writing the contents to the gzip compressed file using gzwrite function
gzwrite($fileopen, $data);
#closing the file after writing the contents to the gzip compressed file
gzclose($fileopen);
#opening the gzip compressed file for reading using gzopen function
$fileopen = gzopen($newfile, "r");
#reading the contents written to the created file using gzread function
echo gzread($fileopen);
#closing the file after reading the contents of the file
gzpassthru($fileopen);
gzclose($fileopen);
echo "\n";
#unlink function is used to delete the file that was just being read
unlink($newfile);
?>
</body>
</html>
Output:
In the above program, a temporary file is created using the tempnum function, which is compressed by using gzip and the path to the file location is stored in a variable called newfile. Then the contents to be written to the newly created file compressed by gzip are stored in a variable called data. Then the gzip-compressed file is opened using gzopen function in write mode. Then the contents stored in the data variable are written to the gzip compressed file using gzwrite function. Then the gzip-compressed file is closed using gzclose function. Then the gzip-compressed file is opened in reading mode using gzopen function to read the contents of the file that were just written to the file using the gzread function, and it is displayed as the output on the screen. Then the gzip-compressed file is closed using gzclose function. Then the file is deleted using the unlink function.
Example #2
PHP program to illustrate the zlib module to read and write to the files that have been compressed using gzip transparently.
Code:
<html>
<body>
<?php
#creating a temporary file which is compressed by gzip using tempnum function and storing the path to the file location in a variable called newfile
$newfile = tempnam('/tmp','exfile') . '.gz';
#storing the contents to be written to the file in a variable called data
$data = "Learning is fun\n";
#opening the gzip compressed file using gzopen function
$fileopen = gzopen($newfile, "w9");
#writing the contents to the gzip compressed file using gzwrite function
gzwrite($fileopen, $data);
#closing the file after writing the contents to the gzip compressed file
gzclose($fileopen);
#opening the gzip compressed file for reading using gzopen function
$fileopen = gzopen($newfile, "r");
#reading the contents written to the created file using gzread function
echo gzread($fileopen);
#closing the file after reading the contents of the file
gzpassthru($fileopen);
gzclose($fileopen);
echo "\n";
#unlink function is used to delete the file that was just being read
unlink($newfile);
?>
</body>
</html>
Output:
In the above program, a temporary file is created using the tempnum function, which is compressed by using gzip and the path to the file location is stored in a variable called newfile. Then the contents to be written to the newly created file compressed by gzip are stored in a variable called data. Then the gzip-compressed file is opened using gzopen function in write mode. Then the contents stored in the data variable are written to the gzip compressed file using gzwrite function. Then the gzip-compressed file is closed using gzclose function. Then the gzip-compressed file is opened in reading mode using gzopen function to read the contents of the file that were just written to the file using the gzread function, and it is displayed as the output on the screen. Then the gzip-compressed file is closed using the gzclose function. Then the file is deleted using the unlink function.
Advantages
- The file that is compressed using gzip can be read or written transparently using zlib module in PHP.
- The content can be delivered to the end-users faster by using the zlib module in PHP because the data streams are compressed by using the zlib module.
- Using zlib module improves performance to a greater extent.
Recommended Articles
This is a guide to PHP zlib. Here we discuss the introduction, syntax, and working of zlib module in PHP along with examples and advantages. You may also have a look at the following articles to learn more –