<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>

<title>Code Igniter 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='Code Igniter 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>Code Igniter User Guide Version 1.5.0</h1></td>
<td id="breadcrumb_right"><a href="../toc.html">Full Table of Contents</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/">Code Igniter 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 Code Igniter 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
Code Igniter 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 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">Code Igniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 &nbsp;&middot;&nbsp; <a href="http://www.pmachine.com">pMachine, Inc.</a></p>
</div>

</body>
</html>