Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-标头错误_Php - Fatal编程技术网

PHP-标头错误

PHP-标头错误,php,Php,运行PHP脚本时,我遇到以下错误: Warning: Cannot modify header information - headers already sent by (output started at /wara/index.php:12) in /wara/index.php on line 18 我正在调用header和setCookies方法 有什么问题吗?是的,如果您的文件编码是UTF-8和BOM,请使用您最喜欢的文本编辑器进行检查。如果是,则将其转换为不带BOM的“UTF-8

运行PHP脚本时,我遇到以下错误:

Warning: Cannot modify header information - headers already sent by (output started at /wara/index.php:12) in /wara/index.php on line 18
我正在调用header和setCookies方法


有什么问题吗?

是的,如果您的文件编码是UTF-8和BOM,请使用您最喜欢的文本编辑器进行检查。如果是,则将其转换为不带BOM的“UTF-8”,并查看其是否起作用

至于原因:

BOM-ByteOrderMask是一个“不可见”的三字符字符串,嵌入在脚本的最开始处。在编写任何其他内容之前,先编写BOM表。由于它不在PHP标记中,它也会被发送到客户端,这就是为什么在尝试发送自己的头时会出现“headers ready sent”错误的原因

据我所知,PHP无法处理带有BOM的UTF-8文件,而且实际上也没有必要,因为UTF8本身就包含了Endianess问题。例如,与UTF16不同

如果您不确定,而编辑器也没有告诉您,可以在十六进制编辑器中打开源文件,查看前三个字符。如果它们不是' 编辑: 正如注释部分所指出的,BOM表示为十六进制值EF BB BF,按UTF-8的顺序排列。对于一个无法使用UTF-8的编辑器来说,这看起来像是ï»。
有关更多信息,您可能希望在第12行查阅

,因为您有一个输出,如echo、print或php代码之外的html标记符号。您不能在输出某些内容后使用header修改标题信息,因为您已经发送了标题。

它说:输出从/wara/index.php:12开始。检查第12行的/wara/index.php,可能是回音或打印

从手册:

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


index.php第12行中有什么内容?您是否确保在这些调用之前没有空格、HTML或回音?还要确保在这些调用之前没有任何代码出错,因为这也可能导致此错误。如果您希望向我们展示您的脚本,因此,我们可能能够更好地帮助您…虽然我对错误消息本身的错误有一个很好的想法,但给我们一些东西来处理始终是一个很好的做法。BOM表示为UTF-8的三个字节:0xEF,0xBB,0xBF@PeeHaa谢谢,我好像忘了是三个字节。让我在中编辑它。不,我相信“第12行”指的是header命令的位置。