|
Acelerar la carga de una pagina - compresion Gzip |
|
|
|
miércoles, 02 de agosto de 2006 |
|
Para acelerar la carga de nuestras paginas php, este codigo obtenido en http://php.weblogs.com/...
consigue comprimir la carga de Html.
Para su uso:
El codigo debemos utilizarlo como tipo include, lo llamaremos por ejemplo comprimir.php
En la pagina que queremos que se muestre mas rapida introduciremos en la parte mas alta de la pagina, antes que ningun otro codigo
Finalmente al pie de la pagina donde hemos hecho el include
Codigo:
<?php
ob_start();
ob_implicit_flush(0);
function CheckCanGzip(){
global $HTTP_ACCEPT_ENCODING;
if (headers_sent() || connection_timeout() || connection_aborted()){
return 0;
}
if (strpos($HTTP_ACCEPT_ENCODING, 'x-gzip') !== false) return "x-gzip";
if (strpos($HTTP_ACCEPT_ENCODING,'gzip') !== false) return "gzip";
return 0;
}
function GzDocOut($level=6,$debug=0){
$ENCODING = CheckCanGzip();
if ($ENCODING){
$Contents = ob_get_contents();
ob_end_clean();
if ($debug){
$s = "<p>Tamaño de pagina no comprimida: ".strlen($Contents);
$s .= "<br>Tamaño de pagina comprimida: ".strlen(gzcompress($Contents,$level));
$Contents .= $s;
}
header("Content-Encoding: $ENCODING");
print "\x1f\x8b\x08\x00\x00\x00\x00\x00";
$Size = strlen($Contents);
$Crc = crc32($Contents);
$Contents = gzcompress($Contents,$level);
$Contents = substr($Contents, 0, strlen($Contents) - 4);
print $Contents;
print pack('V',$Crc);
print pack('V',$Size);
exit;
}else{
ob_end_flush();
exit;
}
}
?>
Fuente: tutores.org |