Detectar si el navegador web soporta compresión con gzip

Código PHP

PHP – Server – Navegador soporta gzip

Función que indica si el navegador soporta compresión de datos mediante la aplicación gzip.

Se consulta en la variable superglobal $_SEVER el parámetro HTTP_ACCEPT_ENCODING si contiene el literal «gzip» o «x-gzip».

Si acepta, el texto comprimido se tiene que volcar al navegador mediante buffers e indicando en el header «Content-Encoding: gzip».

/**
 * Class HelperServer
 */
abstract class HelperServer
{
    /**
     * Comprueba si el navegador soporta compresión con gzip
     *
     * @return bool
     */
    public static function compresionZip( )
    {
        $accept_encoding = HelperServer::getValue( 'HTTP_ACCEPT_ENCODING' );

        $pos = stripos( $accept_encoding, 'gzip' );
        if ( $pos >= 0 ) {
            return true;
        }
        $pos = stripos( $accept_encoding, 'x-gzip' );
        if ( $pos >= 0 ) {
            return true;
        }
        return false;
    }
}

Funciones relacionadas:

Ejemplo

$texto = 'Texto a mostrar';

$accept_gzip = HelperServer::compresionZip( );

if ( $accept_gzip ) {
    // Encriptar
    ob_start( );
    echo $texto;
    $pagina = ob_get_contents( );
    ob_end_clean( );
    header( 'Content-Encoding: gzip' );
    echo gzencode($pagina, 9);
} else {
    // NO encriptar
    echo $texto;
}