Вы не зашли.
#1.
Nu3oN
Off
(11)
Moderator
2011.01.20 23:11
никогда не работал с этой возможностью самостоятельно, вот почитал пару манов, и сообразил такой велосипед!
Код:
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;?> |
Достаточно ли этого?
Я буду лучше голоден, но между креслом и рулем и на дороге.
#2.
TLENS
Off
(14)
Moderator
2011.01.21 02:02
Кстати сам щас пишу сайтик с нуля вот тоже мысль при ходила об gzip
Но еще не занимался сжатием.
Да еще одно вот ob_start("ob_gzhandler");
Когдато глаз заметил но еще не перечитывал мануал.
Поидее убирает все заморочки с сжатием.
Ну низнаю надо будет почитать
#3.
Nu3oN
Off
(11)
Moderator
2011.01.21 02:02
я тоже думал о ob_start("ob_gzhandler") но не все сервера его держут
Я буду лучше голоден, но между креслом и рулем и на дороге.
неее, не пишите таких костылей. пользуйтесь сжатием на уровне сервера.
как пример, такой же костыль
gzip.php, а вот пример после просветления
Gzip2.php
#5.
Nu3oN
Off
(11)
Moderator
2011.01.21 18:06
ну да... этот вариант мне больше нравится! и не пришлось реплейсить статистику
Код:
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'); }?> |
Я буду лучше голоден, но между креслом и рулем и на дороге.
#6.
TLENS
Off
(14)
Moderator
2011.01.22 00:12
А я решил через htaccess
Да кстати отключять надо нам где скрипт отдает файлы ато чет поддержка докачки не работает.
Кстати как отключить в самом файле php?
Отредактировано TLENS (2011.01.22 00:12)
ini_set('zlib.output_compression', 0);
#8.
TLENS
Off
(14)
Moderator
2011.01.22 11:11
О спасибо
Страниц: 1