Diit.cz - Novinky a informace o hardware, software a internetu

Jak to rozjet na vlastním serveru

Obr: Zrychlení provozu - komprese HTML stránek
Co to je? K čemu to je? Jak to mohu používat? Jak moc je to účinné? Jak to mohu zprovoznit na svém serveru? Případné názory či další dotazy směřujte do auditoria o novém designu.

Kapitoly článků

2.  Jak to rozjet na vlastním serveru

A protože si myslím, že jen všem prospěje, pokud budeme HTML stránky komprimovat, tak zde uvedu kus PHP kódu, který komprimaci způsobuje. Upozorňuji, že tento postup je ozkoušen na Unixu s Apache a PHP 4.0.3pl1 zkompilovaný s podporou zlib (--with-zlib). Máte-li PHP starší než 4.0.1, tak vám uvedený postup určitě nebude fungovat. Také s jiným web serverem než Apache asi bude problém.

Na začátek PHP skriptu stačí dát (pozor, před <? nezmí být žádná mezera):

<?
Ob_Start(); 
Ob_Implicit_Flush(0); 
?>

A potom na úplný konec skriptu stačí dát následující kód (zase pozor, za ?> nesmí být žádná mezera):

<?
if (StrPos($HTTP_ACCEPT_ENCODING, 'gzip') === false):
  Ob_End_Flush();
else:
  $Contents = Ob_Get_Contents(); 
  Ob_End_Clean(); 
  $Size = StrLen($Contents); 
  $Crc = CRC32($Contents); 
  $Contents = "\x1f\x8b\x08\x00\x00\x00\x00\x00"
              .GZCompress($Contents, 9); 
  $Contents = SubStr($Contents, 0, StrLen($Contents) - 4)
              .Pack("V",$Crc).Pack("V",$Size); 
  Header('Content-Encoding: gzip'); 
  Header('Content-Length: '.StrLen($Contents)); 
  echo $Contents;
endif;
?>

Kapitoly článků
2.  Jak to rozjet na vlastním serveru

Diskuse ke článku Zrychlení provozu - komprese HTML stránek

Žádné komentáře.