为什么回声后的这个标题不会产生错误?

时间:2011-03-04 20:33:05

标签: php header character-encoding

为什么这不会引发错误:

echo "texto em cirílico sem conversão";
echo "русская слова";
header('Content-type: text/html; charset=utf-8');

不要介意实际的文字,但我做了echo一些文字,然后发了一个新的标题,这显然是另一个标题?

我在这里缺少什么?

PS。我的想法是基于当你尝试发送header(location....类型的东西时弹出的一般错误,但之前你有一些错误,并且编译器对已经发送的标题尖叫。

4 个答案:

答案 0 :(得分:4)

我想你启用了输出缓冲?检查你的php.ini output_buffering。如果打开此选项,所有打印的文本将首先缓存在输出缓冲区中,然后再发送到STDOUT。

答案 1 :(得分:1)

尝试在flush();之后添加echo,看看它是否有所作为。

答案 2 :(得分:0)

如果标头已经发送,header是否显示警告(可能被禁用)而不是错误?在调用if (headers_sent()) {die('headers_sent);'}进行测试之前,我会添加header

答案 3 :(得分:0)

您在调用标头之前发送输出。对此的解决方案是修复output_buffering值或实现ob_start()的使用;和ob_end_flush();。

我希望这有帮助! :)