php - 如何在不维护状态名称数组的情况下用PHP发送状态代码?

标签 php header http-status-codes

我要做的就是从PHP发送404状态代码-但采用通用方式。 Router::statusCode(404)Router::statusCode(403)以及任何其他有效的HTTP状态代码均应正常工作。

我知道,您可以将状态码指定为 header 的第三个参数。可悲的是,这仅在您指定string时有效。因此,调用header('', false, 404)不起作用。

此外,我知道,可以通过带有状态行的header调用发送状态代码:header('HTTP/1.1 404 Not Found')
但是要做到这一点,我必须为所有状态码(Not Found)维护一个原因短语数组(404)。我不喜欢这样的想法,因为它某种程度上是PHP已经本身所做的重复(对于第三个header参数)。

所以,我的问题是:是否有任何简单干净的方法来用PHP发送状态代码?

最佳答案

PHP> = 5.4.0 http_response_code 中为此提供了一个新功能。

只需执行http_response_code(404)即可。

如果您的PHP版本较低,请尝试header(' ', true, 404);(注意字符串中的空格)。

如果还要设置原因短语,请尝试:

header('HTTP/ 433 Reason Phrase As You Wish');

关于php - 如何在不维护状态名称数组的情况下用PHP发送状态代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44586922/

相关文章:

php - 如何将我的 Controller 移动到 Laravel 5.2 中的单独包文件夹中?

当服务器发回错误响应时,PHP SoapClient 返回 null

c++ - <string.h> 与我自己的 String.h 冲突

C++ 静态变量和函数错误

坏数据的 HTTP 状态代码

PHP header ('Location: ' 。 $url) http1.0 对比 http1.1 对比?

python - HTTP 状态代码 200 与 202

php - 设置变量 $_GET 全局(添加好友)

javascript - 如何在ajax函数调用中发送var来发送POST?

php - (PHP) 二维数组第一个元素为索引 "name"