Artigos & Ideias

Minificar a Página XHTML Utilizando Buffers do PHP

Escrito por:

Nós programadores, gostamos de manter o nosso código legível e nítido, e é por isso que utilizamos a identação no nosso código. O problema ao fazer isso, no mundo da programação web, é que os utilizadores não se preocupam com o quão organizado o nosso código está. Eles não se preocupam se o nosso código está bem comentado. Então, porque é que “obrigamos” a fazerem download de código extra?
Com algumas linhas de PHP, isso deixa de ser necessário.

O Código PHP

<?php
	/*  Inicia o Buffer de output  */
	ob_start('comprimir_pagina');

	/*  Código XHTML abaixo  */
?>
<!-- todo o conteúdo xhtml deve ser colocado aqui -->
<?php
	/*  termina o buffer, echo ao conteúdo da página  */
	ob_end_flush();

	/*  função que se livra das tabs (identação), quebras de linhas e espaços desnecessários  */
	function comprimir_pagina($buffer)
	{
		$procura = array('/>[^S ]+/s','/[^S ]+</s','/(s)+/s');
		$substitui = array('>','<','1');
		return preg_replace($procura, $substitui, $buffer);
	}
?>

E pronto, é isto.
Minificar (comprimir) a página é bastante fácil de implementar, especialmente se utilizares um sistema MVC no teu website.

A título de curiosidade, para terem uma noção da utilidade disto, existe uma pequena empresa, chamada, como é que se chama mesmo? Ahh, já sei, Google, que utiliza isto na página de resultados das pesquisas.
Façam um teste, façam uma pesquisa no google, quando ele mostrar os resultados, vejam o código fonte, está praticamente em meia dúzia de linhas.

4


Sobre o Autor

Carlos Gonçalves é um Freelancer com bastante experiência em linguagens de programação e webdesign. Vocacionado para as novas tecnologias, aposta na qualidade dos serviços, atendimento rápido e sempre disponível para melhor satisfazer os seus clientes. Autor do site cgoncalves.com

Comentários

  1. nuno costa  10 Novembro 2009

    Viva,

    Parece que sé escrevo aqui para fazer reparos, mas aqui vai

    Isto que falas não é compressão, não estas a comprimir a página, pelo menos no sentido estrito.

    Apesar de obviamente estares a fazer com que página tenha menos bytes o que fazes chama-se minificação (acho eu, vem do inglês minify)

    Tirando as questões de performace e de repetição de trabalho, no geral gostei muito deste “artigo” e do uso que fazes das funcionalidades de output buffering do PHP, tema que é um mistério para muitos programadores de PHP

    Um abraço

    (responder)
  2. Carlos Gonçalves  11 Novembro 2009

    @nuno costa: toda a intervenção, desde que fundamentada, como a tua, é sempre bem vinda :)
    Como tal, agradeço a tua intervenção.

    Agora respondendo concretamente, desconhecia tal palavra (minificação), não sabia que minify tinha esse significado em português.
    Mas sim, o intuito é “comprimir” a página para abreviar o tempo de carregamento das mesmas.

    Abraço

    (responder)
  3. nuno costa  11 Novembro 2009

    Nem sei muito bem se a palavra é essa ou se existe em português

    mas é isso que ferramentas como jsmin ou o mminify css fazem e é o que o teu código faz, vê-se livre de caracteres que não fazem falta

    (responder)
  4. Carlos Gonçalves  11 Novembro 2009

    @nuno costa: sim, eu conhecia o termo mminify, mas sempre o associei, em português, a compressão em sentido lato.

    Mas sim, o intuito do código é exactamente livrar de todos os caracteres desnecessários.

    (responder)

Comentar

Nota: A moderação de comentários está activada e pode atrasar o teu comentário. Não há necessidade de reenviares o teu comentário.

More in Outros (1 of 12 articles)

# #