首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP-“报头已经发送”错误取决于输出长度?

问PHP-“报头已经发送”错误取决于输出长度?
EN

Stack Overflow用户
提问于 2013-07-14 21:15:37
回答 3查看 636关注 0票数 1

我有一个输出mysql单元数据的脚本。"content“单元格包含不同长度的文本输出。

当"content“单元格的内容很小(例如,几行文本)时,一切都正常。但是,当输出到达几个段落或更多段时,我会得到“已发送的标题”错误。

它取决于输出长度吗?我在哪里能读到更多关于它的资料?我在上面找到的答案没有提到这种输出长度依赖关系。

代码语言:javascript
复制
 44:   echo "
 45:       <p>".$article['content']."</p>
 46:   ";

如果“内容”输出的大小很大,则脚本将产生以下错误:

PHP警告:无法修改头信息--第56行/home/mantas/htdocs/asm/include/comments_class.php中已经发送的标题(输出开始于/home/mantas/htdocs/asm/ajle.php:46)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-14 21:24:01

如果你想要的话,PHP会缓冲输出。您可以使用ob_start()等以编程方式控制这一点。但是,还有一个在php.ini中设置输出缓冲的选项。

设置output_buffering=on启用它,而设置output_buffering=4096将设置缓冲区大小的限制。phpinfo()应该告诉您是否启用了它,以及缓冲区大小是多少。

PHP引用是这里

票数 2
EN

Stack Overflow用户

发布于 2013-07-14 21:23:50

"headers已经发送“警告意味着,在将输出发送到客户端(即使用echo、空格等)之后,您可以在代码中的某个位置修改http标头。

此警告本身与内容长度无关。

还有更多的方法,可以修改标题:

  • 标头/ header_remove
  • session_start / session_regenerate_id
  • setcookie / setrawcookie
票数 0
EN

Stack Overflow用户

发布于 2021-12-22 11:12:41

我还遇到了“已由.发送的标题”。使用PHP的xmlWriter时出现问题。

我在脚本末尾插入了用于管理页面输出类型的“头”指令:

我通过将指令移到脚本的开头来解决这个问题,这个命令使用:

代码语言:javascript
复制
// init header earlier on script
header('Content-Type: text/xml; charset=utf-8');
header('Cache-Control: max-age=0');
header('Content-Disposition: inline');

// new xmlwriter object
$xml = new XMLWriter();

// set direct output stream
$xml->openURI('php://output');

// some code here for creating the xml output
// ....
// ....

// render xml to output
$xml->flush();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17643837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档