headers_sent() 返回 false,但标头已发送

Ale*_*lex 5 html php http-headers

我的代码很简单:

<!DOCTYPE html>
<html>
  <head>
    ...

   <?php var_dump(headers_sent()); ?>
Run Code Online (Sandbox Code Playgroud)

它返回 false。打印内容后不应该立即发送标题吗?就像第一个字符之后一样<

Ama*_*ali 5

这取决于您的output_buffering指令是否在php.ini文件中。如果是Off

output_buffering = Off

然后echo headers_sent()应该输出1

在其他情况下,headers_sent()不会输出任何结果,因为它将是 FALSE。由于输出已被缓冲,因此不会发送标头。

如果您想绕过这个问题并强制发送标头,您可以使用flush().

希望这可以帮助!