“头已发送”错误取决于输出长度?
我有一个输出mysql单元格数据的脚本。 “内容”单元格包含文本输出,其长度各不相同。
当“内容”单元格的内容很小(可以说,几行文字)时,一切正常。 但是,当输出达到多个段落或更多时,我会收到'标题已发送'错误。
它取决于输出长度吗? 我在哪里可以阅读更多关于它的内容 我在SO上找到的答案没有提到这种输出长度依赖性。
44: echo "
45: <p>".$article['content']."</p>
46: ";
如果“内容”输出的大小很大,则脚本会产生以下错误:
PHP警告:无法修改标头信息 - 已在第56行的/home/mantas/htdocs/asm/include/comments_class.php(由/home/mantas/htdocs/asm/article.php:46开始的输出)发送的标头
如果你愿意,PHP会缓冲输出。 你可以通过ob_start()
等程序来控制它。但是,还有一个选项可以在php.ini中设置输出缓冲。
设置output_buffering=on
启用它,而设置output_buffering=4096
将设置缓冲区大小的限制。 phpinfo()
应该告诉你这是否启用,以及缓冲区大小是多少。
PHP的参考在这里
“头文件已发送”警告意味着,在将输出发送到客户端(即使用echo
,whitespaces等)后,您可以在代码中的某处修改http头。
此警告本身与内容长度无关。
有更多的方法,修改头文件:
上一篇: "headers already sent" error depending on output length?