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; } }