Home >Backend Development >PHP Tutorial >How to enable compressed output for a website using PHP to enhance website access speed_PHP Tutorial
Share two methods of compressing page output data to improve web page access speed. One is to use the php zlib extension to achieve page gzip compression output (use php's built-in function ob_gzhandler for gzip compression output), and the other is The method is to enable php gzip by modifying the php.ini configuration file to achieve compression and transmission of compressed page information. Now let’s share in detail how these two methods are implemented!
(1) Gzip compressed output through PHP’s built-in function ob_gzhandler
Add the following code at the head of the page:
if(extension_loaded('zlib') && strstr($_SERVER['HTTP_ACCEPT_ENCODING'],'gzip')){ ob_start('ob_gzhandler'); }else{ exit('php zlib使用失败,请确认是否已加载zlib扩展'); }
Add the following code at the end of the page:
if(extension_loaded('zlib')){ob_end_flush();}
The following are two websites accessed by different domain names but with the same information. The results are as follows:
(2) Turn on or off php gzip by modifying the php.ini configuration file to achieve compression and transmission of compressed page information
1. Find and open the php.ini configuration file, find zlib.output_compression = Off, and change
zlib.output_compression = Off ;zlib.output_compression_level = -1
was changed to:
zlib.output_compression = On zlib.output_compression_level = 6
php gzip configuration knowledge points:
1. By default, PHP does not enable zlib whole-site compression output, but uses the ob_gzhandler function for pages that require compressed output. You can only choose one of the two, otherwise an error will be reported.
2. The default value of zlib.output_compression is Off, you can set it to On, or output buffer size (default is 4k)
3. zlib.output_compression_level represents the compression ratio. The default recommended compression ratio is 6. The optional range is 1-9. -1 means turning off php zlib (gzip) compression
2. Save the php.ini configuration file and restart the apache server
3. Open the apache configuration file httpd.conf and configure the loading of deflate_module. This step is the most critical step to enable php gzip compression output configuration. The method is as follows, find
#LoadModule deflate_module modules/mod_deflate.so
Remove the # sign at the beginning of this paragraph, and then restart apache.
Note: This method is for PHP versions greater than 4.3. PHP versions before 4.3 need to install zlib separately. In addition, I use the php server built by phpnow. I can directly modify the relevant configuration of php.ini (the php-related option configuration file of phpnow is php-apache2handler.ini) and restart apache. There is no need for the second step.
The following are two websites accessed by different domain names but with the same information. The results are as follows:
To see the specific effect, you can check the effect with Firefox. Right-click on the web page. There is an option to view page information in the pop-up menu. Just check the size of the pop-up window. My website has not implemented the modification function. Sadly, my space does not support the gzip compression function, and the code cannot implement it!