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.