Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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 是否可以在http状态标头中设置自定义状态消息(utf-8格式)?_Php_Apache_Http - Fatal编程技术网

Php 是否可以在http状态标头中设置自定义状态消息(utf-8格式)?

Php 是否可以在http状态标头中设置自定义状态消息(utf-8格式)?,php,apache,http,Php,Apache,Http,我想用我自己的状态消息更改http状态标头。例如,将utf-8中的HTTP/1.1200 OK更改为HTTP/1.1200自定义状态消息。为此,我使用php发送了一些标题: Content-Type: text/html; charset=UTF-8 HTTP/1.1 200 custom status message in utf-8 但在Chrome开发者工具中,我看到的状态信息编码错误,例如status code:200ÐÐÐñ!ЧÐо-о。是否可以修复此问题?您刚才在下面的行中使

我想用我自己的状态消息更改http状态标头。例如,将utf-8中的
HTTP/1.1200 OK
更改为
HTTP/1.1200自定义状态消息。为此,我使用php发送了一些标题:

Content-Type: text/html; charset=UTF-8
HTTP/1.1 200 custom status message in utf-8

但在Chrome开发者工具中,我看到的状态信息编码错误,例如
status code:200ÐÐÐñ!ЧÐо-о
。是否可以修复此问题?

您刚才在下面的行中使用来更改HTTP标头状态代码和消息

$msg = "custom status message";

header("Status: 200");
header("HTTP/1.1 200 ".$msg);

(a) 编码未定义,因此不值得尝试非ASCII,此外,(b)原因短语在HTTP/2中不再存在。

Ok,编码在Content type header中定义。那么,我能在其他语言中使用我自己的短语吗(不同于英语)?如果不是,您能解释一下原因吗?不,内容类型定义了HTTP消息的有效负载,而不是头中的任何内容。我无法解释为什么它没有定义,但事实上是这样。这个答案目前遗漏了这些陈述的来源。最好能参考规范的相关部分。我指的是语言状态信息,不同于英语(例如希腊语或俄语)。