PHP标头已发送?

时间:2011-08-31 16:22:05

标签: php header

  

可能重复:
  Warning: Cannot modify header information - headers already sent

你是否已经发过PHP的标题已发送,即使你已经向浏览器显示内容了?

。概念证明。

test.php的

<?php 
 echo "header is trolling";
 header('Location: http://google.com');
?>
加载test.php后的

截图 http://i51.tinypic.com/2gvj6gi.png

它显示最初未找到的对象(我在随机页面上) 我正在尝试捕获“从Google传输数据”,但它加载得如此之快lol

如果您要求我的phpinfo,请告诉我要发布的部分:)

只是为了CLARIFY我没有收到'标题已经发送'错误我知道如何处理它。我实际上是在期待这个错误,但它没有出现

3 个答案:

答案 0 :(得分:2)

标题会立即发送,就像在发送任何实际文档正文之前一样。 通过回应,你说:

  

嘿,我已经完成了所有标题的添加,让我们转到文档内容!所以开始向用户发送标题!

那么当你尝试添加一个标题时,你不能,因为你已经发送了它们

echo "header is trolling";

这不是一些错误,这是完全正常的。想一想..你必须首先发送标题,因为,如果你正在压缩你的文件会发生什么?如果没有先发送标题,怎么可能告诉客户端。

答案 1 :(得分:1)

您应缓冲页面内容,以防止在发送标头之前发送该内容。 doc页面上的一个示例:

http://php.net/manual/en/function.ob-start.php

答案 2 :(得分:0)

<?php 
 ob_start();
 echo "header is trolling";
 ob_clean();
 header('Location: http://google.com');

?>