Файл: system/modules/gzip.php
Строк: 62
<?php
/*
Appointment: Сжатие gzip
File: gzip.php
*/
if(!defined('MOZG'))
die("Hacking attempt!");
function CheckCanGzip(){
if(headers_sent() OR connection_aborted() OR !function_exists('ob_gzhandler') OR ini_get('zlib.output_compression')) return 0;
if(strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip') !== false) return "x-gzip";
if(strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false) return "gzip";
return 0;
}
function GzipOut(){
global $Timer, $db, $tpl, $_DOCUMENT_DATE, $user_info;
$debug = 0;
if($debug)
$s = "!-- Время выполнения скрипта ".$Timer->stop()." секунд --!<br />
!-- Время затраченное на компиляцию шаблонов ".round($tpl->template_parse_time, 5)." секунд --!<br />
!-- Время затраченное на выполнение MySQL запросов: ".round($db->MySQL_time_taken, 5)." секунд --!<br />
!-- Общее количество MySQL запросов ".$db->query_num." --!<br />";
if($debug AND function_exists("memory_get_peak_usage"))
$s .="n!-- Затрачено оперативной памяти ".round(memory_get_peak_usage()/(1024*1024),2)." MB --!<br />";
if($_DOCUMENT_DATE){
@header ("Last-Modified: " . date('r', $_DOCUMENT_DATE) ." GMT");
}
$ENCODING = CheckCanGzip();
if($ENCODING){
if($debug)
$s .= "n!-- Для вывода использовалось сжатие $ENCODING --!n<br />";
$Contents = ob_get_contents();
ob_end_clean();
if($debug){
$s .= "!-- Общий размер файла: ".strlen($Contents)." байт ";
$s .= "После сжатия: ".
strlen(gzencode($Contents, 1, FORCE_GZIP)).
" байт -->";
$Contents .= $s;
}
header("Content-Encoding: $ENCODING");
$Contents = gzencode($Contents, 1, FORCE_GZIP);
echo $Contents;
exit;
} else {
ob_end_flush();
exit;
}
}
?>