我要做的就是404从PHP 发送状态代码- 但采用通用方式。两者Router::statusCode(404)和Router::statusCode(403)以及其他任何有效的HTTP状态代码均应正常工作。
404
Router::statusCode(404)
Router::statusCode(403)
我确实知道,您可以将状态代码指定为的第三个参数header。遗憾的是,这仅在您指定时有效string。因此,呼吁header('', false, 404)并 没有 工作。
header
string
header('', false, 404)
而且我知道,可以通过header带有状态行的呼叫发送状态代码:header('HTTP/1.1 404 Not Found')
header('HTTP/1.1 404 Not Found')
但是要做到这一点,我必须Not Found为所有状态码(404)维护一个原因短语数组()。我不喜欢这样的想法,因为它某种程度上是PHP已经做的事情的重复(对于第三个header参数)。
Not Found
所以,我的问题是:是否有任何简单干净的方法来用PHP发送状态代码?
PHP> = 5.4.0中为此提供了一个新功能。 http_response_code
http_response_code
简单地做http_response_code(404)。
http_response_code(404)
如果您的PHP版本较低,请尝试header(' ', true, 404);(请注意字符串中的空格)。
header(' ', true, 404);
如果还要设置原因短语,请尝试:
header('HTTP/ 433 Reason Phrase As You Wish');