<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Output Class : 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" src="../nav/user_guide_menu.js"></script>

<meta http-equiv='expires' content='-1' />
<meta http-equiv= 'pragma' content='no-cache' />
<meta name='robots' content='all' />
<meta name='author' content='ExpressionEngine Dev Team' />
<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.6.2</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://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="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="../general/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://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006-2008 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">Ellislab, Inc.</a></p>
</div>

</body>
</html>