PHP 警告:无法修改标头信息-标头已发送

示例

外观:

当脚本尝试将HTTP标头发送到客户端但之前已经有输出时,会发生此情况,这导致标头已经发送到客户端。

可能的原因 :

  1. 打印,回显:打印和回显语句的输出将终止发送HTTP标头的机会。必须对应用程序流程进行重组以避免这种情况。

  2. 原始HTML区域: .php文件中未解析的HTML部分也可以直接输出。header()必须在任何原始块之前记录将触发调用的脚本条件。

    <!DOCTYPE html>
    <?php
        // 对于标题已经为时已晚。
  3. <?php“ script.php第1行”警告之前的空白:如果警告涉及第1行中的输出,则在打开<?php令牌之前主要是前导空格,文本或HTML 。

    <?php
    # There's a SINGLE space/newline before <? - Which already seals it.

来自Mario的SO答案引用