Nu3oN » 2011.01.20 23:47

никогда не работал с этой возможностью самостоятельно, вот почитал пару манов, и сообразил такой велосипед!

Код:

1
span style="color: #0000BB"><?php$str = ob_get_contents();ob_end_clean(); $httpEncoding = $_SERVER['HTTP_ACCEPT_ENCODING']; if ((stripos($httpEncoding, 'gzip') !== false) or (stripos($httpEncoding, 'deflate') !== false)) { $sizeGzip = strlen(gzencode($str, 1, FORCE_GZIP)); $sizePage = strlen($str); $issetGzip = true; } else { $issetGzip = false;}$str = strtr($str, array( '<!--Page-->' => (round($sizePage / 1024,1).'kb'), '<!--GzipSize-->' => ($issetGzip ? round($sizeGzip / 1024,1).'kb' : 'none'), '<!--GzipPerc-->' => ($issetGzip ? round(($sizeGzip / $sizePage * 100)).'%' : '0%'), '<!--Gener-->' => (round(microtime(true) - MT, 4))));if ($issetGzip) { $str = gzencode($str, 1, FORCE_GZIP); header('Content-Encoding: gzip');}echo $str;?>

Достаточно ли этого?

TLENS » 2011.01.21 02:27

Кстати сам щас пишу сайтик с нуля вот тоже мысль при ходила об gzip
Но еще не занимался сжатием.
Да еще одно вот ob_start("ob_gzhandler");
Когдато глаз заметил но еще не перечитывал мануал.
Поидее убирает все заморочки с сжатием.
Ну низнаю надо будет почитать

Nu3oN » 2011.01.21 02:44

я тоже думал о ob_start("ob_gzhandler") но не все сервера его держут

Gemorroj » 2011.01.21 11:11

неее, не пишите таких костылей. пользуйтесь сжатием на уровне сервера.
как пример, такой же костыль gzip.php, а вот пример после просветления Gzip2.php

Nu3oN » 2011.01.21 18:41

ну да... этот вариант мне больше нравится! и не пришлось реплейсить статистику

Код:

1
span style="color: #0000BB"><?php public static function endGzip() { switch (zlib_get_coding_type()) { default: $arrData['inPage'] = $arrData['outGzip'] = round(ob_get_length() / 1024, 2); $arrData['comGzip'] = 0; break; case 'gzip': $level = ini_get('zlib.output_compression_level'); $arrData['inPage'] = round(ob_get_length() / 1024, 2); $arrData['outGzip'] = round(strlen(gzencode(ob_get_contents(), $level, FORCE_GZIP)) / 1024, 2); $arrData['comGzip'] = round(100 - (100 / ($arrData['inPage'] / $arrData['outGzip'])), 1); break; case 'deflate': $level = ini_get('zlib.output_compression_level'); $arrData['inPage'] = round(ob_get_length() / 1024, 2); $arrData['outGzip'] = round(strlen(gzencode(ob_get_contents(), $level, FORCE_DEFLATE)) / 1024, 2); $arrData['comGzip'] = round(100 - (100 / ($arrData['inPage'] / $arrData['outGzip'])), 1); break; } $arrData['totQuery'] = DB :: $_sql -> countQuery; $arrData['timQuery'] = round(DB :: $_sql -> timeQuery, 4); $arrData['genPage'] = round(microtime(true) - MT, 4); Template :: assign('foot', $arrData); Template :: display('theme/footer'); }?>
TLENS » 2011.01.22 00:34

А я решил через htaccess
Да кстати отключять надо нам где скрипт отдает файлы ато чет поддержка докачки не работает.

Кстати как отключить в самом файле php?

Gemorroj » 2011.01.22 09:49

ini_set('zlib.output_compression', 0);

TLENS » 2011.01.22 11:38

О спасибо