Загрузка...
Бизнес - Энциклопедия

оооооооооооооооооооооооо

Загрузка...
 
Интернет для профессионалов
 

Оптимизация HTML с помощью алгоритмов сжатия

В четвертой версии PHP появилась возможность оптимизации HTML документов с помощью алгоритмов сжатия таких как, например gzip. Это новшество сразу же нашло свое место, многие программисты и разработчики стали использовать в своих разработках.

Этот алгоритм может сжать html страничку почти в два раза (в зависимости от уровня сжатия). Алгоритм сжатия работает очень быстро, можно даже сказать что на лету, и вы даже не заметите изменений при загрузки сжатых html. Хватит рекламы, пора приступать к самому алгоритму.

Ниже изображена схема HTML документа, который использует алгоритм сжатия. Схема поделена на 3 болка:

include('gzсomp.php');
?>

тело HTML странички

gzdocout();
?>

Первый блок находиться в самом начале HTML документа и включает в документ файл, который отвечает за сжатия HTML данных.

Во втором блоке находиться тело HTML документа (его контекст).

Третий блок запускает процедуру сжатия.

Алгоритм сжатия
ob_start();
ob_implicit_flush(0);

// Проверка возможности использования алгоритма сжатия

function CheckCanGzip(){
global $HTTP_ACCEPT_ENCODING;
if (headers_sent() || connection_timeout() || 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;
}

// Процедура сжатия

functionGzDocOut($level=1,$debug=0){
$ENCODING = CheckCanGzip();
if ($ENCODING){
print "\n\n";
$Contents = ob_get_contents();
ob_end_clean();
if ($debug){
$s = "

Длина без сжатия:

".strlen($Contents);
$s .= "

Длина с сжатием:

".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;
}
}
?>

Как использовать этот алгоритм

1. Поместить весь алгоритм в файл: gzcomp.php

2. В процедуре сжатия GzDocOut, указать уровень сжатия от 0 (не сжимать) до 9 (максимальное сжатие)

3. Как уже говорилось выше надо поставить в самое начало документа (до тэгов HTML) код:

include('gzcomp.php');
?>

4. И в самом конце (после HTML тэгов) вызов на процедуру php сценария:

gzdocout();
?>

Как видите, все просто. Теперь вы сможете оптимизировать свой сайт и уменьшить его размеры. Я думаю, что этот скрипт будет очень полезен для тех кто имеет большую страничку или портал интернете.

Ивашкин Артем
http://patlah.ru

© "Бизнес-Энциклопедия" Патлах В.В. 2005-2010 гг.

Loading...

..

Загрузка...

оооооооооооооооооооооооо