> Manuales > Taller de PHP

Para aligerar el tiempo de carga de nuestras páginas generadas con PHP, podemos enviarlas al navegador comprimidas con GZip

Para aligerar el tiempo de carga de nuestras páginas generadas con PHP, podemos enviarlas al navegador comprimidas con GZip utilizando las funciones de control de salida, para ello, llamaremos a la funcion predefinida ob_gzhandler cómo tratante de la funcion ob_start, veamos un ejemplo:

<?
ob_start("ob_gzhandler");

// Contenido de la página, puede contener
// tanto HTML cómo PHP

ob_end_flush();
?>


Tener en cuenta que todo el contenido debe estar en el lugar indicado por lo que los primeros carácteres del documento deben ser <? y los dos últimos ?> y no se debe añadir nada excepto donde se indica, si no vamos con cuidado recibiremos un error parecido al siguiente:

Warning: Cannot add header information...

Otra forma más completa todavía de compresion, consiste en aplicar la misma funcion, pero eliminando a su vez los espacios y saltos de linea de la fuente del documento, lo que no tendra ningun efecto visual pero disminuira el tiempo de descarga, veamos cómo hacerlo:

<?
ob_start();

// Contenido de la página, puede contener
// tanto HTML cómo PHP

$cntACmp =ob_get_contents();
ob_end_clean();
$cntACmp=str_replace("\n",' ',$cntACmp);
$cntACmp=ereg_replace('[[:space:]]+',' ',$cntACmp);
ob_start("ob_gzhandler");
echo $cntACmp;
ob_end_flush();
?>


Este método funciona igual que el anterior solo que antes de comprimir elimina los saltos de linea y espacios innecesarios, pero debemos tener en cuenta las mismas precauciones o no funcionará.

Este método de compresion lo he desarrollado para ProgramacionWeb, como podreis comprovar al ver el código fuente de esta misma página, todo el código aparece sin saltos de linea ni tabulado por una simple cuestion de compresion.

Eloi de San Martin Lagranje

Manual