3 maneiras de comprimir arquivos CSS usando o PHP


Quando você está usando ou criando um design sofisticado e começa a criar um monte de arquivo CSS e estes se tornam longos, a partir de um certo momento ele vai consumir um tempo para carregar. E é justamente este tempo que você pode reduzir para que seu site abra rapidamente.

Pesquisei e encontrei 3 maneiras interessantes (e fáceis) de comprimir arquivos CSS usando o PHP.

Método 1

Neste método você precisa renomear o arquivo .css para .css.php e não esqueça de renomear também na chamada do CSS no seu arquivo HTML. Desta forma:

<link rel="stylesheet" type="text/css" media="screen" href="style.css.php"/>

Depois de renomear os seus arquivos CSS, edite cada um deles colocando no topo (na primeira linha) o seguinte código PHP:

<?php if(extension_loaded('zlib')){ob_start('ob_gzhandler');}header("Content-type: text/css"); ?>

Depois, coloque na última linha do seu arquivo CSS o seguinte código:

<?php if(extension_loaded('zlib')){ob_end_flush();}?>

Apenas isso!

Método 2

Basicamente, este método tem o mesmo conceito do anterior, porém neste você só precisa inserir o código na primeira linha do seu CSS.

Primeiro renomeie o arquivo .css para .css.php e na primeira linha do arquivo insira o código:

<?php
 ob_start("ob_gzhandler");
 header("content-type: text/css; charset: ISO-8859-1");
 header("cache-control: must-revalidate");
 $offset = 60 * 60;
 $expire = "expires: " . gmdate ("D, d M Y H:i:s", time() + $offset) . " GMT";
 header ($expire);
?>

Um pouco mais simples do Método 1, pois neste você não precisa ficar editando o topo e rodapé do arquivo. E você pode isolar este código em um arquivo PHP e depois usar um include() e colar em todos os seus .css.php.

Método 3

Este não mistura PHP com CSS (ufa). Neste método você cria um arquivo estilos.php e nele você chama os CSS que você quer aplicar na página.

O código abaixo é o que deve estar no seu arquivo HTML para chamar seus CSS:

<link rel="stylesheet" type="text/css" media="screen" href="estilos.php"/>

E dentro do seu arquivo estilos.php coloque o seguinte código:

<?php
 header('Content-type: text/css');
 ob_start("compress");
 function compress($buffer) {
 /* remove os comentarios */
 $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
 /* remove tabs, espaços, newlines, etc. */
 $buffer = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', $buffer);
 return $buffer;

 }

  /* seus arquivos CSS */
  include('home.css');
  include('interna.css');
  include('secao.css');
  ob_end_flush();
?>

No código acima a única coisa que você deve mudar são as linhas de include(), para os seus CSS correspondentes.

Lembre-se que neste exemplo o arquivo estilos.php está no mesmo diretório que seus arquivos .css, caso contrário você deve colocar o caminho correto.

Total de comentários: 0
avatar