+ +
+

Output Class

+

The Output class is a core class with one main function: To send the +finalized web page to the requesting browser. It is also responsible for +caching your web pages, if you use that +feature.

+
+

Note

+

This class is initialized automatically by the system so there +is no need to do it manually.

+
+

Under normal circumstances you won’t even notice the Output class since +it works transparently without your intervention. For example, when you +use the Loader 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.

+ +
+

Class Reference

+
+
+class CI_Output
+
+
+$parse_exec_vars = TRUE;
+

Enables/disables parsing of the {elapsed_time} and {memory_usage} pseudo-variables.

+

CodeIgniter will parse those tokens in your output by default. To disable this, set +this property to FALSE in your controller.

+
$this->output->parse_exec_vars = FALSE;
+
+
+
+ +
+
+set_output($output)
+
+++ + + + + + + + +
Parameters:
    +
  • $output (string) – String to set the output to
  • +
+
Returns:

CI_Output instance (method chaining)

+
Return type:

CI_Output

+
+

Permits you to manually set the final output string. Usage example:

+
$this->output->set_output($data);
+
+
+
+

Important

+

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 methods, don’t set the output until the end.

+
+
+ +
+
+set_content_type($mime_type[, $charset = NULL])
+
+++ + + + + + + + +
Parameters:
    +
  • $mime_type (string) – MIME Type idenitifer string
  • +
  • $charset (string) – Character set
  • +
+
Returns:

CI_Output instance (method chaining)

+
Return type:

CI_Output

+
+

Permits you to set the mime-type of your page so you can serve JSON data, JPEG’s, XML, etc easily.

+
$this->output
+        ->set_content_type('application/json')
+        ->set_output(json_encode(array('foo' => 'bar')));
+
+$this->output
+        ->set_content_type('jpeg') // You could also use ".jpeg" which will have the full stop removed before looking in config/mimes.php
+        ->set_output(file_get_contents('files/something.jpg'));
+
+
+
+

Important

+

Make sure any non-mime string you pass to this method +exists in application/config/mimes.php or it will have no effect.

+
+

You can also set the character set of the document, by passing a second argument:

+
$this->output->set_content_type('css', 'utf-8');
+
+
+
+ +
+
+get_content_type()
+
+++ + + + + + +
Returns:Content-Type string
Return type:string
+

Returns the Content-Type HTTP header that’s currently in use, excluding the character set value.

+
$mime = $this->output->get_content_type();
+
+
+
+

Note

+

If not set, the default return value is ‘text/html’.

+
+
+ +
+
+get_header($header)
+
+++ + + + + + + + +
Parameters:
    +
  • $header (string) – HTTP header name
  • +
+
Returns:

HTTP response header or NULL if not found

+
Return type:

mixed

+
+

Returns the requested HTTP header value, or NULL if the requested header is not set. +Example:

+
$this->output->set_content_type('text/plain', 'UTF-8');
+echo $this->output->get_header('content-type');
+// Outputs: text/plain; charset=utf-8
+
+
+
+

Note

+

The header name is compared in a case-insensitive manner.

+
+
+

Note

+

Raw headers sent via PHP’s native header() function are also detected.

+
+
+ +
+
+get_output()
+
+++ + + + + + +
Returns:Output string
Return type:string
+

Permits you to manually retrieve any output that has been sent for +storage in the output class. Usage example:

+
$string = $this->output->get_output();
+
+
+

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 $this->load->view().

+
+ +
+
+append_output($output)
+
+++ + + + + + + + +
Parameters:
    +
  • $output (string) – Additional output data to append
  • +
+
Returns:

CI_Output instance (method chaining)

+
Return type:

CI_Output

+
+

Appends data onto the output string.

+
$this->output->append_output($data);
+
+
+
+ +
+
+set_header($header[, $replace = TRUE])
+
+++ + + + + + + + +
Parameters:
    +
  • $header (string) – HTTP response header
  • +
  • $replace (bool) – Whether to replace the old header value, if it is already set
  • +
+
Returns:

CI_Output instance (method chaining)

+
Return type:

CI_Output

+
+

Permits you to manually set server headers, which the output class will +send for you when outputting the final rendered display. Example:

+
$this->output->set_header('HTTP/1.0 200 OK');
+$this->output->set_header('HTTP/1.1 200 OK');
+$this->output->set_header('Last-Modified: '.gmdate('D, d M Y H:i:s', $last_update).' GMT');
+$this->output->set_header('Cache-Control: no-store, no-cache, must-revalidate');
+$this->output->set_header('Cache-Control: post-check=0, pre-check=0');
+$this->output->set_header('Pragma: no-cache');
+
+
+
+ +
+
+set_status_header([$code = 200[, $text = '']])
+
+++ + + + + + + + +
Parameters:
    +
  • $code (int) – HTTP status code
  • +
  • $text (string) – Optional message
  • +
+
Returns:

CI_Output instance (method chaining)

+
Return type:

CI_Output

+
+

Permits you to manually set a server status header. Example:

+
$this->output->set_status_header(401);
+// Sets the header as:  Unauthorized
+
+
+

See here for a full list of headers.

+
+

Note

+

This method is an alias for Common function +set_status_header().

+
+
+ +
+
+enable_profiler([$val = TRUE])
+
+++ + + + + + + + +
Parameters:
    +
  • $val (bool) – Whether to enable or disable the Profiler
  • +
+
Returns:

CI_Output instance (method chaining)

+
Return type:

CI_Output

+
+

Permits you to enable/disable the Profiler, which will display benchmark +and other data at the bottom of your pages for debugging and optimization purposes.

+

To enable the profiler place the following line anywhere within your +Controller methods:

+
$this->output->enable_profiler(TRUE);
+
+
+

When enabled a report will be generated and inserted at the bottom of your pages.

+

To disable the profiler you would use:

+
$this->output->enable_profiler(FALSE);
+
+
+
+ +
+
+set_profiler_sections($sections)
+
+++ + + + + + + + +
Parameters:
    +
  • $sections (array) – Profiler sections
  • +
+
Returns:

CI_Output instance (method chaining)

+
Return type:

CI_Output

+
+

Permits you to enable/disable specific sections of the Profiler when it is enabled. +Please refer to the Profiler documentation for further information.

+
+ +
+
+cache($time)
+
+++ + + + + + + + +
Parameters:
    +
  • $time (int) – Cache expiration time in minutes
  • +
+
Returns:

CI_Output instance (method chaining)

+
Return type:

CI_Output

+
+

Caches the current page for the specified amount of minutes.

+

For more information, please see the caching documentation.

+
+ +
+
+_display([$output = ''])
+
+++ + + + + + + + +
Parameters:
    +
  • $output (string) – Output data override
  • +
+
Returns:

void

+
Return type:

void

+
+

Sends finalized output data to the browser along with any server headers. It also stops benchmark +timers.

+
+

Note

+

This method is called automatically at the end of script execution, you won’t need to +call it manually unless you are aborting script execution using exit() or die() in your code.

+
+

Example:

+
$response = array('status' => 'OK');
+
+$this->output
+        ->set_status_header(200)
+        ->set_content_type('application/json', 'utf-8')
+        ->set_output(json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES))
+        ->_display();
+exit;
+
+
+
+

Note

+

Calling this method manually without aborting script execution will result in duplicated output.

+
+
+ +
+ +
+
+ + +