Вы не зашли.
Главная » PHP » gzip сжатие
#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") но не все сервера его держут
Я буду лучше голоден, но между креслом и рулем и на дороге.
#4. Gemorroj Off (107)
Administrator
2011.01.21 11:11
неее, не пишите таких костылей. пользуйтесь сжатием на уровне сервера.
как пример, такой же костыль 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)
#7. Gemorroj Off (107)
Administrator
2011.01.22 09:09
ini_set('zlib.output_compression', 0);
#8. TLENS Off (14)
Moderator
2011.01.22 11:11
О спасибо
Страниц: 1
Главная
WEB
PunBB Mod v0.6.2
0.015 s