为什么这不会引发错误:
echo "texto em cirílico sem conversão";
echo "русская слова";
header('Content-type: text/html; charset=utf-8');
不要介意实际的文字,但我做了echo
一些文字,然后发了一个新的标题,这显然是另一个标题?
我在这里缺少什么?
PS。我的想法是基于当你尝试发送header(location....
类型的东西时弹出的一般错误,但之前你有一些错误,并且编译器对已经发送的标题尖叫。
答案 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();。
我希望这有帮助! :)