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; }