Chinaunix首页 | 论坛 | 博客
  • 博客访问: 77046
  • 博文数量: 41
  • 博客积分: 2095
  • 博客等级: 大尉
  • 技术积分: 410
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-22 23:04
文章分类
文章存档

2012年(4)

2011年(1)

2008年(8)

2006年(28)

我的朋友

分类: 系统运维

2012-09-07 13:36:39

在 php 里 用 header  session_start 

有时会出现 headers already sent by ...  错误 

这通常是 php.ini中 output_buffering = Off 导致的

把值设为 On  即可   

 output_buffering   是帮助 http header 的

Output Buffering的工作原理
启用output buffering时,在脚本发送输出时,PHP并 不发送HTTP header。相反,它将此输出通过管道(pipe)输入到动态增加的缓存中(只能在PHP 4.0中使用,它具有中央化的输出机制)。你仍然可以修改,添加标题行,或者设置cookie,因为标题实际上并没有发送。最简单的情况是,当脚本终止 时,PHP将自动发送HTTP header到浏览器,然后再发送输出缓冲中的内容。


可以使用下面的四个函数,它们可以帮助你控制output buffering:
ob_start()
启用output buffering机制。
Output buffering支持多层次 -- 例如,可以多次调用 ob_start() 函数。

ob_end_flush()
发送output buffer(输出缓冲)并禁用output buffering机制。

ob_end_clean()
清除output buffer但不发送,并禁用output buffering。

ob_get_contents()
将当前的output buffer返回成一个字符串。允许你处理脚本发出的任何输出。

阅读(302) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~