目录搜索
欢迎目录快速参考图基本信息服务器要求许可协议变更记录关于CodeIgniter安装下载 CodeIgniter安装指导从老版本升级疑难解答介绍开始CodeIgniter 是什么?CodeIgniter 速记表支持特性应用程序流程图模型-视图-控制器架构目标教程内容提要加载静态内容创建新闻条目读取新闻条目结束语常规主题CodeIgniter URL控制器保留字视图模型辅助函数使用 CodeIgniter 类库创建你自己的类库使用 CodeIgniter 适配器创建适配器创建核心系统类钩子 - 扩展框架的核心自动装载资源公共函数URI 路由错误处理缓存调试应用程序以CLI方式运行管理应用程序处理多环境PHP替代语法安全开发规范类库参考基准测试类日历类购物车类配置类Email 类加密类文件上传类表单验证详解FTP 类图像处理类输入类Javascript 类语言类装载类迁移类输出类分页类模板解析器类安全类Session 类HTML 表格类引用通告类排版类单元测试类URI 类User-Agent 类表单验证XML-RPC 和 XML-RPC 服务器Zip 编码类缓存适配器适配器参考适配器数据库类Active Record 类数据库缓存类自定义函数调用数据库配置连接你的数据库数据库快速入门例子代码字段数据数据库维护类查询辅助函数数据库类查询生成查询记录集表数据事务数据库工具类JavaScript类辅助函数参考数组辅助函数CAPTCHA 辅助函数Cookie Helper日期辅助函数目录辅助函数下载辅助函数Email 辅助函数文件辅助函数表单辅助函数HTML辅助函数Inflector 辅助函数语言辅助函数数字辅助函数路径辅助函数安全辅助函数表情辅助函数字符串辅助函数文本辅助函数排版辅助函数URL 辅助函数XML 辅助函数
文字

CodeIgniter 用户指南 版本 2.1.0

编辑文档、查看近期更改请 登录 或 注册  找回密码
查看原文

输出类

输出类是只有一个主要功能的简单的类: 发送最终的Web页面到所请求的浏览器。如果您开启缓存功能,他还负责缓存您的网页文件。

输出类虽然很简单,但是它实现的功能却很重要咯: 输出最后的执行结果给发送请示的浏览器. 如果你选择了使用缓存 ,这块也归它管.

注意:输出类的初始化操作是由系统自动完成的,基本上不用你操心.

在一般的情况下你是感觉到不到它的存在的(也用不着去关心),对于你来说它就是透明的,不用去干预,它就能正常的工作. 比如说, 你使用装载器类加载了一个视图文件, 这个视图文件的内容会自动传递给输出类对象, 然后呢,在方法执行完毕后会自动调用输出类对象将执行的结果输出. 但是呢,实际开发的过程当中会遇见一些特殊的情况需要我们干预输出,接管输出的控制权(像是客户要求将数据导出成Excel,提供下载),这种时候,下面的这些个方法就用啦:

$this->output->set_output();

告诉CodeIgniter方法执行完毕后,用给定的数据做为输出。例如:

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

重要:使用这个方法有一点很重要,就要将它放在最后一句,千万要注意啊,到时候出了错,不要怪我没提醒你.

$this->output->set_content_type();

允许你设置页面的mime类型以便于输出 JSON , JPEG, XML 等类型的数据.

$this->output
    ->set_content_type('application/json')
    ->set_output(json_encode(array('foo' => 'bar')));

$this->output
    ->set_content_type('jpeg') // 你也可以用".jpeg",它在查找 config/mimes.php 文件之前会移除句号
    ->set_output(file_get_contents('files/something.jpg'));

重要: 确保你传递到此方法的非mime字符串在 config/mimes.php 存在,否则设置不起作用。

$this->output->get_output();

使用这个方法,你可以得到将要输出的数据,并把它保存起来,留着它用(我们做新闻类型网站的时候,常常需要生成静态的HTML文件). 例如:

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

注意,如果先前的数据已经被一个类似 $this->load->view() 的 CodeIgniter 函数送到了输出类,那么只能取得那个函数之后的输出。

$this->output->append_output();

在输出字符串后附加数据。例如:

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

$this->output->set_header();

使用此方法,允许你设置将会被发送到浏览器的HTTP协议的标头,作用相当于php的标准函数: header()。例如:

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

$this->output->set_status_header(code, 'text');

允许你手动设置服务器状态头(header)。例如:

$this->output->set_status_header('401');
// 将header设置为: Unauthorized

单击这里查看全部的 header 列表。

$this->output->enable_profiler();

允许你开启或禁用评测器,评测器将在页的底部显示测试基准点或调试、优化需要的其他数据。

在控制器函数的任何位置放置以下函数,可以开启控制器:

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

当开启评测器功能,会在您的页面底部生成一个报告。

你可以用以下语句禁用评测器:

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

$this->output->set_profiler_sections();

允许你在评测器启用时控制(开/关)其特定部分。请参考评测器了解详细信息。

$this->output->cache();

CodeIgniter的输出类同样也控制缓存。要获取更多信息,请阅读 缓存文档.

Parsing Execution Variables

默认情况下,CodeIgniter总会在输出中解析伪变量{elapsed_time}{memory_usage}。 如需禁用,在控制器中将类属性$parse_exec_vars设为FALSE$this->output->parse_exec_vars = FALSE;

 

翻译贡献者: billycui, Glen, Hex, hk_yuhe, lishen2, xwjie, yinzhili
最后修改: 2012-02-08 23:20:24
上一篇:下一篇: