Usando Gzip para comprimir a página PHP para envio mais rápido
Esse artigo foi criado por Eloi de San Martin Lagranje no programacionweb.net e eu apenas dei uma reinterpretada nele. É uma técnica para diminuir o tempo de carregamento das páginas geradas com PHP e consiste em envia-las compactadas com o formato Gzip.
Você precisa compactar a página para o formato Gzip utilizando funções de controle de saída através da função ob_gzhandler atravéz da função ob_start(). Coloque essas funções no início do script e o termine com a função ob_end_flush().Veja o exemplo.
A função ob_start ativa o buffer de saída e, enquanto o buffer de saída estiver ativo, não é enviada a saída do script, ao invés a saída é guardada em um buffer interno. Isso vai armazenando a página no lado do cliente até terminar de carregar. ob_gzhandler() é uma função passada para a ob_start() para facilitar o envio de dados gz-encoded para browsers que suportam páginas comprimidas. Enquanto a funão ob_end_flush() descarrega o buffer de saída e o desativa.
A forma 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:
O conteúdo que será impresso deve estar entre ob_start() e ob_end_flush(). Conteúdo fora dessas funções ocasionará o warning “Cannot add header information... ”.
Você precisa compactar a página para o formato Gzip utilizando funções de controle de saída através da função ob_gzhandler atravéz da função ob_start(). Coloque essas funções no início do script e o termine com a função ob_end_flush().Veja o exemplo.
<?php ob_start("ob_gzhandler"); // Conteúdo da página ob_end_flush(); ?>
A função ob_start ativa o buffer de saída e, enquanto o buffer de saída estiver ativo, não é enviada a saída do script, ao invés a saída é guardada em um buffer interno. Isso vai armazenando a página no lado do cliente até terminar de carregar. ob_gzhandler() é uma função passada para a ob_start() para facilitar o envio de dados gz-encoded para browsers que suportam páginas comprimidas. Enquanto a funão ob_end_flush() descarrega o buffer de saída e o desativa.
A forma 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:
<?php ob_start(); // Conteúdo da página $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(); ?>
O conteúdo que será impresso deve estar entre ob_start() e ob_end_flush(). Conteúdo fora dessas funções ocasionará o warning “Cannot add header information... ”.
Novo Comentário: