PHP:如何知道输出是否已经开始?

时间:2011-01-20 21:16:59

标签: php header

我使用相同的php脚本进行包括 ajax 加载。它是一些随机目录项,它们加载了页面,可以加载ajax。只有在通过ajax加载时才需要使用header()函数。

当我使用标题功能并且输出已经开始时,我得到关于它的php警告。 php如何知道输出已经开始了?确定它的最佳方法是什么,而不是调用标题函数?

感谢。

6 个答案:

答案 0 :(得分:13)

http://php.net/manual/en/function.headers-sent.php

// If no headers are sent, send one
if (!headers_sent()) {
    header('...');
    exit;
}

答案 1 :(得分:4)

有一个简单的内置功能:

if (!headers_sent()) {
    header('Your header here');
}

添加更多内容:)

答案 2 :(得分:2)

一种选择是在ob_start()开头调用{{1}}。这样你就可以随时发送标题。

答案 3 :(得分:2)

如果您无法发送其他标题,

headers_sent()会返回true

答案 4 :(得分:0)

如果您向客户发送了任何内容,则输出已开始。

例如,即使是单个html标记,它也已输出。

您可以构建应用程序,以便不会发生这种情况, 或者你可以打开输出缓冲:

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

答案 5 :(得分:0)

在代码启动前删除空行并添加exit; 输出结束后。