buffer = ""; $this->headers = []; } /** * PHP magic method called when ending the script * Used for outputing HTML * * @return void */ public function __destruct() { if ( ! empty($this->headers)) { // Set headers foreach($this->headers as $key => $val) { if ( ! isset($val)) { @header($key); } else { @header("$key: $val"); } } } if ( ! empty($this->buffer)) { if (is_null(error_get_last())) { // Compression is good! ob_start("ob_gzhandler"); } else { ob_start(); } echo $this->buffer; ob_end_flush(); } } // -------------------------------------------------------------------------- /** * Sets a header for later output * * @param string $key * @param string $val */ public function set_header($key, $val) { $this->headers[$key] = $val; } // -------------------------------------------------------------------------- /** * Adds text to the output buffer * * @param string $string */ public function append_output($string) { $this->buffer .= $string; } // -------------------------------------------------------------------------- /** * Sets the output buffer * * @param string $string */ public function set_output($string) { $this->buffer = $string; } // -------------------------------------------------------------------------- /** * Sends headers and then removes them */ public function flush_headers() { // Set headers foreach ($this->headers as $key => &$val) { if ( ! isset($val)) { @header($key); } else { @header("{$key}: {$val}"); } } // Empty headers $this->headers = []; } } // End of Output.php