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:
- HelperServer::getValue: Obtener un valor del array $_SERVER con filter_input
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;
}
