0

header在拒绝将浏览器重定向到提供的 URL 之前,PHP 函数是否对浏览器的文本或二进制输出量有限制?

我注意到我可以输出到浏览器然后使用 进行重定向header('Location: $url'); exit();,但似乎在我输出一定数量后它拒绝并输出此消息?

在 Zend 认证研究期间,我从未遇到任何建议这一点,所以我想知道它是否是一个未记录的特性?

警告:无法修改标头信息 - 标头已由 /var/www/vhosts/dev/dev_crmpicco/includes/Rangers.inc 中的(输出开始于 /var/www/vhosts/dev/dev_crmpicco/co.php:935)发送。 php上线1701

4

2 回答 2

2

答案可以在header()手册中找到

请记住,必须在发送任何实际输出之前调用 header(),无论是通过普通 HTML 标记、文件中的空白行还是从 PHP 发送。使用 include 或 require 函数或其他文件访问函数读取代码并在调用 header() 之前输出空格或空行是一个非常常见的错误。使用单个 PHP/HTML 文件时也存在同样的问题。

在设置标题之前,您不能输出任何文本。如果您认为能够在标头失败之前输出一定数量的字节,您可能有某种输出缓冲集允许您回显任何内容。

于 2012-11-02T14:04:09.983 回答
0

答案是否定的。您可能会看到一些输出缓冲正在进行。缓冲区在您的标头之前被刷新了几次。您可以在 php.ini 中默认输出缓冲,或者您可以专门与 ob_start() 一起使用。

于 2012-11-02T14:08:27.393 回答