<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>

<title>CodeIgniter User Guide</title>

<style type='text/css' media='all'>@import url('../userguide.css');</style>
<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />

<script type="text/javascript" src="../nav/nav.js"></script>
<script type="text/javascript" src="../nav/prototype.lite.js"></script>
<script type="text/javascript" src="../nav/moo.fx.js"></script>
<script type="text/javascript">
window.onload = function() {
	myHeight = new fx.Height('nav', {duration: 400});
	myHeight.hide();
}
</script>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv='expires' content='-1' />
<meta http-equiv= 'pragma' content='no-cache' />
<meta name='robots' content='all' />
<meta name='author' content='Rick Ellis' />
<meta name='description' content='CodeIgniter User Guide' />

</head>
<body>

<!-- START NAVIGATION -->
<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle.jpg" width="153" height="44" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
<div id="masthead">
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td><h1>CodeIgniter User Guide Version 1.5.3</h1></td>
<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td>
</tr>
</table>
</div>
<!-- END NAVIGATION -->


<!-- START BREADCRUMB -->
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td id="breadcrumb">
<a href="http://www.codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp;
<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
Output Class
</td>
<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="www.codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
</tr>
</table>
<!-- END BREADCRUMB -->

<br clear="all" />


<!-- START CONTENT -->
<div id="content">


<h1>Output Class</h1>

<p>The Output class is a small class with one main function:  To send the finalized web page to the requesting browser.  It is
also responsible for <a href="../general/caching.html">caching</a> your web pages, if you use that feature.</p>

<p class="important"><strong>Note:</strong> This class is initialized automatically by the system so there is no need to do it manually.</p>

<p>Under normal circumstances you won't even notice the Output class since it works transparently without your intervention.
For example, when you use the <a href="../libraries/loader.html">Loader</a> class to load a view file, it's automatically
passed to the Output class, which will be called automatically by CodeIgniter at the end of system execution.
It is possible, however, for you to manually intervene with the output if you need to, using either of the two following functions:</p>

<h2>$this->output->set_output();</h2>

<p>Permits you to manually set the final output string.  Usage example:<p>

<code>$this->output->set_output($data);</code>

<p><strong>Important:</strong> If you do set your output manually, it must be the last thing done in the function you call it from.
For example, if you build a page in one of your controller functions, don't set the output until the end.</p>


<h2>$this->output->get_output();</h2>

<p>Permits you to manually retrieve any output that has been sent for storage in the output class.  Usage example:<p>
<code>$string = $this->output->get_output();</code>

<p>Note that data will only be retrievable from this function if it has been previously sent to the output class by one of the
CodeIgniter functions like <var>$this->load->view()</var>.</p>


<h2>$this->output->set_header();</h2>

<p>Permits you to manually set server headers, which the output class will send for you when outputting the final rendered display.  Example:<p>

<code>
$this->output->set_header("HTTP/1.0 200 OK");<br />
$this->output->set_header("HTTP/1.1 200 OK");<br />
$this->output->set_header('Last-Modified: '.gmdate('D, d M Y H:i:s', $last_update).' GMT');<br />
$this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate");<br />
$this->output->set_header("Cache-Control: post-check=0, pre-check=0", false);<br />
$this->output->set_header("Pragma: no-cache");	</code>


<h2>$this->output->enable_profiler();</h2>

<p>Permits you to enable/disable the <a href="../general/profiling.html">Profiler</a>, which will display benchmark and other data
at the bottom of your pages for debugging and optimization purposes.</p>

<p>To enable the profiler place the following function anywhere within your <a href="controllers.html">Controller</a> functions:</p>
<code>$this->output->enable_profiler(TRUE);</code>

<p>When enabled a report will be generated and inserted at the bottom of your pages.</p>

<p>To disable the profiler you will use:</p>
<code>$this->output->enable_profiler(FALSE);</code>



</div>
<!-- END CONTENT -->


<div id="footer">
<p>
Previous Topic:&nbsp;&nbsp;<a href="language.html">Language Class</a>
&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
Next Topic:&nbsp;&nbsp;<a href="pagination.html">Pagination Class</a>
<p>
<p><a href="http://www.codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2007 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">Ellislab, Inc.</a></p>
</div>

</body>
</html>