http_response_code()

1. 定义

该函数获取或设置HTTP的响应状态码。 如果提供了状态码,将返回之前的状态码;如果未提供状态码,将返回当前设置的状态码。

注:

  • 在WEB环境中,状态码默认为200
  • 在非WEB环境中,提供状态码将返回TRUE,未提供状态码将返回FALSE

2. 语法

http_response_code ([ int $response_code ] ) : mixed

3. 参数说明

参数 可选性 数据类型 描述
$response_code 可选 整型 设置的HTTP响应状态码

4. 示例

<?php

// http_response_code()
// 获取或设置HTTP的响应状态码

var_dump(http_response_code(404));// 输出:bool(true)
var_dump(http_response_code());// 输出:int(404)

/* 根据状态码提示相关信息 */
$repcodes = [
    100=>'服务器已接受请求,正在等待接下来的请求...',
    101=>'服务器已理解客户端请求,正在通知客户端采用协议来完成该请求...',
    102=>'服务器已收到请求,正在处理请求...',
    200=>'成功处理了请求的状态代码,并响应成功!',
    202=>'成功接受了请求',
    204=>'成功接受了请求,但没有任何资源返回',
    301=>'已完成请求,该链接将永久重定向',
    302=>'已完成请求,该链接将临时进行重定向',
    304=>'已完成请求,原来缓存的文档还可以继续使用',
    400=>'请求出错:请求头中出现语法错误',
    403=>'请求被拒绝:服务器禁止访问',
    404=>'无法找到请求的资源',
    500=>'服务器错误:执行请求时发生错误',
    503=>'服务器不存在:无法处理请求'
];

foreach ($repcodes as $key => $value) {
    http_response_code($key);// 修改当前的状态码
    echo '当前响应码:',http_response_code(),', 状态:',$repcodes[http_response_code()],"\n";
}
/* 输出:(可以查看浏览器开发者工具中 Headers 部分的 Status Code )
当前响应码:101, 状态:服务器已理解客户端请求,正在通知客户端采用协议来完成该请求...
当前响应码:102, 状态:服务器已收到请求,正在处理请求...
当前响应码:200, 状态:成功处理了请求的状态代码,并响应成功!
当前响应码:202, 状态:成功接受了请求
当前响应码:204, 状态:成功接受了请求,但没有任何资源返回
当前响应码:301, 状态:已完成请求,该链接将永久重定向
当前响应码:302, 状态:已完成请求,该链接将临时进行重定向
当前响应码:304, 状态:已完成请求,原来缓存的文档还可以继续使用
当前响应码:400, 状态:请求出错:请求头中出现语法错误
当前响应码:403, 状态:请求被拒绝:服务器禁止访问
当前响应码:404, 状态:无法找到请求的资源
当前响应码:500, 状态:服务器错误:执行请求时发生错误
当前响应码:503, 状态:服务器不存在:无法处理请求
 */

5. 延展阅读

  • header():用于向浏览器发送原生的 HTTP 头
  • headers_list():将返回已经发送或准备发送的 HTTP 响应头列表