コード例 #1
0
function ClickTale_ProcessOutput($buffer)
{
    $bufferCopy = $buffer;
    set_error_handler("ClickTale_BufferErrorHandler");
    try {
        $gzip = false;
        // decode gzipped content if there is gzip encoding header
        if (ClickTale_HasGZipEncodingHeader()) {
            ClickTale_Logger::WriteDebug("GZip headers detected");
            $gzip = true;
            $buffer = gzdecode($buffer);
            // log this
            //ClickTale_Logger::Write("Decoding gzipped buffer. Might affect performance.");
        }
        $buffer = ClickTale_ProcessOutput_inject($buffer);
        // re-encode the buffer in gzip encoding if we decoded it before
        if ($gzip) {
            $buffer = gzencode($buffer);
        }
    } catch (Exception $ex) {
        ClickTale_Settings::$hadRuntimeError = true;
    }
    restore_error_handler();
    if (ClickTale_Settings::$hadRuntimeError) {
        return $bufferCopy . "<!-- ClickTale PHP Integration module failed to inject ClickTale script -->";
    } else {
        return $buffer;
    }
}