blob: 4d1f8d97a5cd587aebcb7caa743a0e7030ccd766 [file] [log] [blame]
Derek Allard2067d1a2008-11-13 22:59:24 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
3<head>
4
5<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6<title>Output Class : CodeIgniter User Guide</title>
7
8<style type='text/css' media='all'>@import url('../userguide.css');</style>
9<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />
10
11<script type="text/javascript" src="../nav/nav.js"></script>
12<script type="text/javascript" src="../nav/prototype.lite.js"></script>
13<script type="text/javascript" src="../nav/moo.fx.js"></script>
14<script type="text/javascript" src="../nav/user_guide_menu.js"></script>
15
16<meta http-equiv='expires' content='-1' />
17<meta http-equiv= 'pragma' content='no-cache' />
18<meta name='robots' content='all' />
19<meta name='author' content='ExpressionEngine Dev Team' />
20<meta name='description' content='CodeIgniter User Guide' />
21
22</head>
23<body>
24
25<!-- START NAVIGATION -->
26<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
27<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
28<div id="masthead">
29<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
30<tr>
Pascal Kriete1f622292011-04-07 12:06:51 -040031<td><h1>CodeIgniter User Guide Version 2.0.2</h1></td>
Derek Allard2067d1a2008-11-13 22:59:24 +000032<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td>
33</tr>
34</table>
35</div>
36<!-- END NAVIGATION -->
37
38
39<!-- START BREADCRUMB -->
40<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
41<tr>
42<td id="breadcrumb">
43<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp;
44<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
45Output Class
46</td>
47<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>
48</tr>
49</table>
50<!-- END BREADCRUMB -->
51
52<br clear="all" />
53
54
55<!-- START CONTENT -->
56<div id="content">
57
58
59<h1>Output Class</h1>
60
Derek Jones37f4b9c2011-07-01 17:56:50 -050061<p>The Output class is a small class with one main function: To send the finalized web page to the requesting browser. It is
Derek Allard2067d1a2008-11-13 22:59:24 +000062also responsible for <a href="../general/caching.html">caching</a> your web pages, if you use that feature.</p>
63
64<p class="important"><strong>Note:</strong> This class is initialized automatically by the system so there is no need to do it manually.</p>
65
66<p>Under normal circumstances you won't even notice the Output class since it works transparently without your intervention.
67For example, when you use the <a href="../libraries/loader.html">Loader</a> class to load a view file, it's automatically
68passed to the Output class, which will be called automatically by CodeIgniter at the end of system execution.
69It is possible, however, for you to manually intervene with the output if you need to, using either of the two following functions:</p>
70
71<h2>$this->output->set_output();</h2>
72
Derek Jones37f4b9c2011-07-01 17:56:50 -050073<p>Permits you to manually set the final output string. Usage example:</p>
Derek Allard2067d1a2008-11-13 22:59:24 +000074
75<code>$this->output->set_output($data);</code>
76
77<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.
78For example, if you build a page in one of your controller functions, don't set the output until the end.</p>
79
80
Phil Sturgeon60ed1a32011-03-08 21:43:54 +000081<h2>$this->output->set_content_type();</h2>
82
83<p>Permits you to set the mime-type of your page so you can serve JSON data, JPEG's, XML, etc easily.</p>
84
85<code>$this->output<br/>
86&nbsp;&nbsp;&nbsp;&nbsp;->set_content_type('application/json')<br/>
87&nbsp;&nbsp;&nbsp;&nbsp;->set_output(json_encode(array('foo' => 'bar')));<br/>
88<br/>
89$this->output<br/>
90&nbsp;&nbsp;&nbsp;&nbsp;->set_content_type('jpeg') // You could also use ".jpeg" which will have the full stop removed before looking in config/mimes.php<br/>
91&nbsp;&nbsp;&nbsp;&nbsp;->set_output(file_get_contents('files/something.jpg'));</code>
92
93<p><strong>Important:</strong> Make sure any non-mime string you pass to this method exists in config/mimes.php or it will have no effect.</p>
94
95
Derek Allard2067d1a2008-11-13 22:59:24 +000096<h2>$this->output->get_output();</h2>
97
Derek Jones37f4b9c2011-07-01 17:56:50 -050098<p>Permits you to manually retrieve any output that has been sent for storage in the output class. Usage example:</p>
Derek Allard2067d1a2008-11-13 22:59:24 +000099<code>$string = $this->output->get_output();</code>
100
101<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
102CodeIgniter functions like <var>$this->load->view()</var>.</p>
103
104
Derek Allard1ca94e82010-01-16 19:24:21 +0000105<h2>$this->output->append_output();</h2>
106
Derek Jones37f4b9c2011-07-01 17:56:50 -0500107<p>Appends data onto the output string. Usage example:</p>
Derek Allard1ca94e82010-01-16 19:24:21 +0000108
109<code>$this->output->append_output($data);</code>
110
111
112
Derek Allard2067d1a2008-11-13 22:59:24 +0000113<h2>$this->output->set_header();</h2>
114
Derek Jones37f4b9c2011-07-01 17:56:50 -0500115<p>Permits you to manually set server headers, which the output class will send for you when outputting the final rendered display. Example:</p>
Derek Allard2067d1a2008-11-13 22:59:24 +0000116
117<code>
118$this->output->set_header("HTTP/1.0 200 OK");<br />
119$this->output->set_header("HTTP/1.1 200 OK");<br />
120$this->output->set_header('Last-Modified: '.gmdate('D, d M Y H:i:s', $last_update).' GMT');<br />
121$this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate");<br />
122$this->output->set_header("Cache-Control: post-check=0, pre-check=0");<br />
123$this->output->set_header("Pragma: no-cache"); </code>
124
125
Derek Jones817163a2009-07-11 17:05:58 +0000126<h2>$this->output->set_status_header(<var>code</var>, '<var>text</var>');</h2>
Derek Allard2067d1a2008-11-13 22:59:24 +0000127
Derek Jones37f4b9c2011-07-01 17:56:50 -0500128<p>Permits you to manually set a server status header. Example:</p>
Derek Allard2067d1a2008-11-13 22:59:24 +0000129
130<code>$this->output->set_status_header('401');<br />
Derek Jones37f4b9c2011-07-01 17:56:50 -0500131// Sets the header as: Unauthorized</code>
Derek Allard2067d1a2008-11-13 22:59:24 +0000132
133<p><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">See here</a> for a full list of headers.</p>
134
135<h2>$this->output->enable_profiler();</h2>
136
137<p>Permits you to enable/disable the <a href="../general/profiling.html">Profiler</a>, which will display benchmark and other data
138at the bottom of your pages for debugging and optimization purposes.</p>
139
140<p>To enable the profiler place the following function anywhere within your <a href="../general/controllers.html">Controller</a> functions:</p>
141<code>$this->output->enable_profiler(TRUE);</code>
142
143<p>When enabled a report will be generated and inserted at the bottom of your pages.</p>
144
145<p>To disable the profiler you will use:</p>
146<code>$this->output->enable_profiler(FALSE);</code>
147
Derek Jonesee71c802010-03-10 10:05:05 -0600148<h2>$this->output->set_profiler_sections();</h2>
149
Derek Jones37f4b9c2011-07-01 17:56:50 -0500150<p>Permits you to enable/disable specific sections of the Profiler when enabled. Please refer to the <a href="../general/profiling.html">Profiler</a> documentation for further information.</p>
Derek Allard2067d1a2008-11-13 22:59:24 +0000151
152<h2>$this->output->cache();</h2>
Derek Jones37f4b9c2011-07-01 17:56:50 -0500153<p>The CodeIgniter output library also controls caching. For more information, please see the <a href="../general/caching.html">caching documentation</a>.</p>
Derek Allard2067d1a2008-11-13 22:59:24 +0000154
Derek Jones5034e3f2010-03-10 13:33:43 -0600155<h2>Parsing Execution Variables</h2>
156
Derek Jones37f4b9c2011-07-01 17:56:50 -0500157 <p>CodeIgniter will parse the pseudo-variables <var>{elapsed_time}</var> and <var>{memory_usage}</var> in your output by default. To disable this, set the <var>$parse_exec_vars</var> class property to <var>FALSE</var> in your controller.
Barry Mienydd671972010-10-04 16:33:58 +0200158
Derek Jones5034e3f2010-03-10 13:33:43 -0600159 <code>$this->output->parse_exec_vars = FALSE;</code>
Barry Mienydd671972010-10-04 16:33:58 +0200160
Derek Allard2067d1a2008-11-13 22:59:24 +0000161</div>
162<!-- END CONTENT -->
163
164
165<div id="footer">
166<p>
167Previous Topic:&nbsp;&nbsp;<a href="language.html">Language Class</a>
168&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
169<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
170<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
171Next Topic:&nbsp;&nbsp;<a href="pagination.html">Pagination Class</a>
172</p>
Derek Jones898949f2011-01-28 07:42:16 -0600173<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2011 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p>
Derek Allard2067d1a2008-11-13 22:59:24 +0000174</div>
175
176</body>
adminb0dd10f2006-08-25 17:25:49 +0000177</html>