Código Fonte - O melhor conteúdo para programadores

Comprimir página PHP

terça-feira, 8 de janeiro de 2008.

autor: Rodrigo Araujo

Comprimir página PHP


Para abreviar o tempo de carregamento de nossas páginas geradas com PHP, podemos envia-las ao navegador comprimidas com Gzip.

Para abreviar o tempo de carregamento de nossas páginas geradas com PHP, podemos enviá-las ao navegador comprimidas com GZip utilizando as funções de controle de saída, para isso, chamaremos à função pré-definida ob_gzhandler como tratante da função ob_start, vejamos um exemplo:

<? 
ob_start("ob_gzhandler");

// Conteúdo da página, pode conter
// tanto HTML como PHP

ob_end_flush();
?>


Devemos ter em conta que todo o conteúdo deve estar no lugar indicado, portanto os primeiros caracteres do documento devem ser <? e os dois últimos ?> e não se deve acrescentar nada exceto onde se indique, se não formos com cuidado receberemos um erro parecido ao seguinte:

Warning: Cannot add header information...

Outra forma ainda mais completa de compressão, consiste em aplicar a mesma função, mas eliminando por sua vez os espaços e quebras de linha da fonte do documento, o que não terá nenhum efeito visual, mas diminuirá o tempo de download, vejamos como fazer:

<? 
ob_start();

// Conteúdo da página, pode conter
// tanto HTML como 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 o anterior só que antes de comprimir elimina as quebras de linha e espaços desnecessários, mas devemos ter em conta as mesmas precauções porque senão, não funcionará.

Este método de compressão, desenvolvemos para Programação Web, como você pode comprovar ao ver o código fonte desta mesma página, todo o código aparece sem quebras de linha nem tabulações por uma simples questão de compressão.


Versão impressa gerada em: quarta-feira, 7 de janeiro de 2009

© Copyright 2006 - R&W Consulting.