Основное назначение скрипта - сжатие страниц, передаваемых сервером браузеру. У меня в среднем сжималось в 4 раза. Одно "НО": Не ставьте уровень сжатия больше 3 - размер не уменьшится, а нагрузка на сервер - еще как. Скрипт используется следующим образом: <? include('gzdoc.php'); ?> <HTML> ... the page ... </HTML> <? gzdocout(); ?> | |
gzdoc.php ** | ** |... the page ... ** | ** | ** -------------End of file----------- */ ob_start(); ob_implicit_flush(0); function CheckCanGzip(){ global $HTTP_ACCEPT_ENCODING; if (headers_sent() || connection_aborted()){ return 0; } if (strpos($HTTP_ACCEPT_ENCODING, 'x-gzip') !== false) return "x-gzip"; if (strpos($HTTP_ACCEPT_ENCODING, 'gzip') !== false) return "gzip"; return 0; } /* $level = compression level 0-9, 0=none, 9=max */ function GzDocOut($level=3, $debug=0){ $ENCODING = CheckCanGzip(); if ($ENCODING){ print "\n\n"; $Contents = ob_get_contents(); ob_end_clean(); if ($debug){ $s = "Not compress length: ".strlen($Contents)."; "; $s .= "Compressed length: ". strlen(gzcompress($Contents, $level)). ""; $Contents .= $s; } header("Content-Encoding: $ENCODING"); print "\x1f\x8b\x08\x00\x00\x00\x00\x00"; $Size = strlen($Contents); $Crc = crc32($Contents); $Contents = gzcompress($Contents, $level); $Contents = substr($Contents, 0, strlen($Contents) - 4); print $Contents; print pack('V', $Crc); print pack('V', $Size); exit; }else{ ob_end_flush(); exit; } } ?>
|
Категория: php | Добавил: freeone (10.05.2007)
|
Просмотров: 678
| Рейтинг: 0.0 |
|