[英]Setting HTTP response status code in PHP using header('HTTP/1.1 <status-code>')?
[英]Setting a HTTP response code in PHP (under Apache)
给出以下两种在PHP中设置HTTP响应代码的方法(特别是在Apache下):
方法1:
http_response_code(404);
方法2:
header("HTTP/1.0 404 Not Found");
我的问题是:
http_response_code
仅在PHP 5.4或更高版本中可用之外,这两种方法之间有什么区别以及为什么/何时使用另一种方法? 由于我没有明显的理由被遗忘,我已经设法通过浏览PHP源代码来回答这个问题。 希望这可以作为其他任何试图解决这个问题的人的参考。
这两种方法在功能上基本相同。 http_response_code
基本上是编写http状态标头的简便方法,还有一个额外的好处,PHP将通过将您的响应代码与它在php-src / main /中维护的枚举中的某个值匹配来提供合适的Reason Phrase。 http_status_codes.h 。
请注意,这意味着您的响应代码必须与PHP知道的响应代码相匹配。 您无法使用此方法创建自己的响应代码,但可以使用header
方法。 另请注意, http_response_code
仅适用于PHP 5.4.0及更高版本。
总结 - http_response_code
和header
之间的差异用于设置响应代码:
使用http_response_code
将使PHP匹配并从原始短语列表中应用原因短语,这些原因短语被硬编码到PHP源代码中。
由于上面的第1点,如果您使用http_response_code
,则必须设置PHP知道的代码。 您无法设置自己的自定义代码,但是如果使用header
功能,则可以设置自定义代码(和原因短语)。
http_response_code
仅适用于PHP 5.4.0及更高版本
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.