CodeIgniter 輸出類

2018-07-21 15:40 更新

輸出類

輸出類是個核心類,它的功能只有一個:發(fā)送 Web 頁面內(nèi)容到請求的瀏覽器。 如果你開啟緩存,它也負(fù)責(zé) 緩存 你的 Web 頁面。

注解

這個類由系統(tǒng)自動加載,你無需手工加載。

在一般情況下,你可能根本就不會注意到輸出類,因?yàn)樗鼰o需你的干涉, 對你來說完全是透明的。例如,當(dāng)你使用 加載器 加載一個視圖文件時,它會自動傳入到輸出類,并在系統(tǒng)執(zhí)行的最后由 CodeIgniter 自動調(diào)用。盡管如此,在你需要時,你還是可以對輸出進(jìn)行手工處理。

類參考

classCI_Output

$parse_exec_vars = TRUE;

啟用或禁用解析偽變量({elapsed_time} 和 {memory_usage})。

CodeIgniter 默認(rèn)會在輸出類中解析這些變量。要禁用它,可以在你的控制器中設(shè)置 這個屬性為 FALSE 。

$this->output->parse_exec_vars = FALSE;

set_output($output)

參數(shù):

  • $output (string) -- String to set the output to

返回: CI_Output instance (method chaining)

返回類型: CI_Output

允許你手工設(shè)置最終的輸出字符串。使用示例:

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

重要

如果你手工設(shè)置輸出,這必須放在方法的最后一步。例如, 如果你正在某個控制器的方法中構(gòu)造頁面,將 set_output 這句代碼放在方法的最后。

set_content_type($mime_type[, $charset = NULL])

參數(shù):

  • $mime_type (string) -- MIME Type idenitifer string
  • $charset (string) -- Character set

返回: CI_Output instance (method chaining)

返回類型: CI_Output

允許你設(shè)置你的頁面的 MIME 類型,可以很方便的提供 JSON 數(shù)據(jù)、JPEG、XML 等等格式。

$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'));

重要

確保你傳入到這個方法的 MIME 類型在 application/config/mimes.php 文件中能找到,要不然方法不起任何作用。

你也可以通過第二個參數(shù)設(shè)置文檔的字符集。

$this->output->set_content_type('css', 'utf-8');

get_content_type()

返回: Content-Type string
返回類型: string

獲取當(dāng)前正在使用的 HTTP 頭 Content-Type ,不包含字符集部分。

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

注解

如果 Content-Type 沒有設(shè)置,默認(rèn)返回 'text/html' 。

get_header($header)

參數(shù):

  • $header (string) -- HTTP header name

返回: HTTP response header or NULL if not found

返回類型: mixed

返回請求的 HTTP 頭,如果 HTTP 頭還沒設(shè)置,返回 NULL 。 例如:

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

注解

HTTP 頭名稱是不區(qū)分大小寫的。

注解

返回結(jié)果中也包括通過 PHP 原生的 header() 函數(shù)發(fā)送的原始 HTTP 頭。

get_output()

返回: Output string
返回類型: string

允許你手工獲取存儲在輸出類中的待發(fā)送的內(nèi)容。使用示例:

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

注意,只有通過 CodeIgniter 輸出類的某個方法設(shè)置過的數(shù)據(jù),例如 $this->load->view() 方法,才可以使用該方法獲取到。

append_output($output)

參數(shù):

  • $output (string) -- Additional output data to append

返回: CI_Output instance (method chaining)

返回類型: CI_Output

向輸出字符串附加數(shù)據(jù)。

$this->output->append_output($data);

set_header($header[, $replace = TRUE])

參數(shù):

  • $header (string) -- HTTP response header
  • $replace (bool) -- Whether to replace the old header value, if it is already set

返回: CI_Output instance (method chaining)

返回類型: CI_Output

允許你手工設(shè)置服務(wù)器的 HTTP 頭,輸出類將在最終顯示頁面時發(fā)送它。例如:

$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 = '']])

參數(shù):

  • $code (int) -- HTTP status code
  • $text (string) -- Optional message

返回: CI_Output instance (method chaining)

返回類型: CI_Output

允許你手工設(shè)置服務(wù)器的 HTTP 狀態(tài)碼。例如:

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

閱讀這里 得到一份完整的 HTTP 狀態(tài)碼列表。

注解

這個方法是 通用方法 中的 set_status_header() 的別名。

enable_profiler([$val = TRUE])

參數(shù):

  • $val (bool) -- Whether to enable or disable the Profiler

返回: CI_Output instance (method chaining)

返回類型: CI_Output

允許你啟用或禁用 程序分析器 ,它可以在你的頁面底部顯示 基準(zhǔn)測試的結(jié)果或其他一些數(shù)據(jù)幫助你調(diào)試和優(yōu)化程序。

要啟用分析器,將下面這行代碼放到你的 控制器 方法的任何位置:

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

當(dāng)啟用它時,將生成一份報(bào)告并插入到你的頁面的最底部。

要禁用分析器,你可以這樣:

$this->output->enable_profiler(FALSE);

set_profiler_sections($sections)

參數(shù):

  • $sections (array) -- Profiler sections

返回: CI_Output instance (method chaining)

返回類型: CI_Output

當(dāng)程序分析器啟用時,該方法允許你啟用或禁用程序分析器的特定字段。 請參考 程序分析器 文檔獲取詳細(xì)信息。

cache($time)

參數(shù):

  • $time (int) -- Cache expiration time in seconds

返回: CI_Output instance (method chaining)

返回類型: CI_Output

將當(dāng)前頁面緩存一段時間。

更多信息,請閱讀 文檔緩存 。

_display([$output = ''])

參數(shù):

  • $output (string) -- Output data override

返回: void

返回類型: void

發(fā)送最終輸出結(jié)果以及服務(wù)器的 HTTP 頭到瀏覽器,同時它也會停止基準(zhǔn)測試的計(jì)時器。

注解

這個方法會在腳本執(zhí)行的最后自動被調(diào)用,你無需手工調(diào)用它。 除非你在你的代碼中使用了 exit() 或 die() 結(jié)束了腳本執(zhí)行。

例如:

$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;

注解

手工調(diào)用該方法而不結(jié)束腳本的執(zhí)行,會導(dǎo)致重復(fù)輸出結(jié)果。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號