在PHP中使用标头

Ale*_*exV 4 php header http-headers

很简单的问题:这两个PHP(版本5+)标题调用中哪一个是"最好的"?

header('Not Modified', true, 304);
header('HTTP/1.1 304 Not Modified');
Run Code Online (Sandbox Code Playgroud)

我很确定第一个是多价的,但只是好奇如果在HTTP 1.0下PHP将"修复"第二个...

谢谢!

编辑:其中一个标题在我的Web主机上崩溃了PHP.后续问题: PHP header()调用"崩溃"脚本,HTTP 500错误

Gum*_*mbo 8

我会用这个:

header($_SERVER['SERVER_PROTOCOL'].' 304 Not Modified', true, 304);
Run Code Online (Sandbox Code Playgroud)

$_SERVER['SERVER_PROTOCOL']包含请求中使用的协议,如HTTP/1.0HTTP/1.1.


编辑     我必须承认我的建议毫无意义.经过几次测试后,我注意到如果第一个参数是一个有效的HTTP状态行,PHP将使用该状态行,而不管第三个参数是否给出了第二个状态代码.并且第二个参数(它替换的文档名称)也没用,因为不能有多个状态行.

所以这个调用中的第二个和第三个参数只是多余的:

header($_SERVER['SERVER_PROTOCOL'].' 304 Not Modified', true, 304);
Run Code Online (Sandbox Code Playgroud)

请改用:

header($_SERVER['SERVER_PROTOCOL'].' 304 Not Modified');
Run Code Online (Sandbox Code Playgroud)