예제 #1
0
파일: gzip.php 프로젝트: Hadryan/L2LWEB
function GzipOut($debug = 0)
{
    global $config, $Timer, $db, $tpl, $_DOCUMENT_DATE;
    if ($debug) {
        $s = "\r\n<!-- Время выполнения скрипта " . $Timer->stop() . " секунд -->\r\n<!-- Время затраченное на компиляцию шаблонов " . round($tpl->template_parse_time, 5) . " секунд -->\r\n<!-- Время затраченное на выполнение MySQL запросов: " . round($db->MySQL_time_taken, 5) . " секунд -->\r\n<!-- Общее количество MySQL запросов " . $db->query_num . " -->";
    }
    if ($debug and function_exists("memory_get_peak_usage")) {
        $s .= "\n<!-- Затрачено оперативной памяти " . round(memory_get_peak_usage() / (1024 * 1024), 2) . " MB -->";
    }
    if ($_DOCUMENT_DATE) {
        @header("Last-Modified: " . date('r', $_DOCUMENT_DATE) . " GMT");
    }
    if ($config['allow_gzip'] != "yes") {
        if ($debug) {
            echo $s;
        }
        ob_end_flush();
        return;
    }
    $ENCODING = CheckCanGzip();
    if ($ENCODING) {
        $s .= "\n<!-- Для вывода использовалось сжатие {$ENCODING} -->\n";
        $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;
    }
}
예제 #2
0
function GzipOut()
{
    $ENCODING = CheckCanGzip();
    if ($ENCODING) {
        $Contents = ob_get_contents();
        ob_end_clean();
        header("Content-Encoding: {$ENCODING}");
        $Contents = gzencode($Contents, 1, FORCE_GZIP);
        echo $Contents;
        exit;
    } else {
        //      ob_end_flush();
        exit;
    }
}
예제 #3
0
function GzDocOut($level = 9, $debug = 0)
{
    $ENCODING = CheckCanGzip();
    if ($ENCODING) {
        $Contents = ob_get_contents();
        ob_end_clean();
        $s = "\n<!-- Koriandol compress module : {$ENCODING} (" . strlen($Contents) . "/" . strlen(gzcompress($Contents, $level)) . ") -->\n";
        $Contents .= $s;
        header("Content-Encoding: {$ENCODING}");
        print "‹";
        $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;
    }
}