How To enable GZIP Compression in PHP?

GZIP compression is a simple, effective way to save bandwidth and speed up PHP applications by compressing content before sending it to the client. The mechanism works in three steps.

How GZIP Compression Works

Browser/Client Server 1. Request for file 2. Compressed file (.zip) 3. Browser Process: Downloads Extracts Displays

Method 1: Using .htaccess (Apache)

Add the following configuration to your .htaccess file to enable GZIP compression ?

# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

# Or, compress certain file types by extension:
<files *.html>
SetOutputFilter DEFLATE
</files>

Method 2: Using PHP ob_gzhandler

You can enable GZIP compression directly in PHP files using output buffering ?

<?php
    if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'))
        ob_start("ob_gzhandler");
    else 
        ob_start();
    
    // Your PHP content here
    echo "This content will be compressed if the browser supports GZIP";
?>

Method 3: Using zlib.output_compression

Enable compression through PHP configuration or runtime ?

<?php
    // Enable GZIP compression
    ini_set('zlib.output_compression', 'On');
    ini_set('zlib.output_compression_level', 6);
    
    echo "This content will be automatically compressed";
?>

Checking GZIP Support

You can verify if GZIP compression is working ?

<?php
    $encoding = $_SERVER['HTTP_ACCEPT_ENCODING'] ?? '';
    
    if (strpos($encoding, 'gzip') !== false) {
        echo "Browser supports GZIP compression<br>";
    } else {
        echo "Browser does not support GZIP compression<br>";
    }
    
    // Check if output compression is enabled
    if (ini_get('zlib.output_compression')) {
        echo "GZIP output compression is enabled";
    } else {
        echo "GZIP output compression is disabled";
    }
?>

Conclusion

GZIP compression significantly reduces file sizes and improves website loading speed. Use .htaccess for server-wide compression or PHP's ob_gzhandler for file-specific compression.

Updated on: 2026-03-15T08:14:21+05:30

5K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements