PHP http_response_code 函数
最后修改于 2025 年 4 月 4 日
PHP 的 http_response_code 函数用于获取或设置 HTTP 响应状态码。它对于正确的 HTTP 通信至关重要。
基本定义
http_response_code 设置或检索 HTTP 响应码。在设置新的状态码时,它会向客户端发送正确的标头。
语法:http_response_code(int $response_code = null): int|bool。如果未提供参数,则返回当前代码;在设置代码时,则返回 true/false。
设置 404 Not Found 响应
此示例演示了为丢失的资源设置 404 状态。
<?php declare(strict_types=1); http_response_code(404); echo "The requested resource was not found"; exit;
这会在输出内容之前设置正确的 404 状态。浏览器和爬虫会理解这意味着资源不存在。在设置错误代码后始终退出,以防止进一步执行。
获取当前响应码
这显示了如何检索当前的 HTTP 响应状态码。
<?php declare(strict_types=1); $code = http_response_code(); echo "Current HTTP response code: $code";
当不带参数调用时,它返回当前状态码。如果未设置任何代码,则默认为 200。这对于调试和日志记录很有用。
API 错误响应
此示例在 JSON API 响应中显示了正确的错误处理。
<?php
declare(strict_types=1);
header('Content-Type: application/json');
http_response_code(400);
echo json_encode([
'error' => true,
'message' => 'Invalid request parameters'
]);
exit;
API 应使用正确的 HTTP 状态码以及错误消息。这会设置 400 (Bad Request) 并带有 JSON 错误负载。请始终为 API 设置 content-type 标头。
使用 301 状态码进行重定向
此示例演示了使用 HTTP 301 状态码进行永久重定向。
<?php
declare(strict_types=1);
http_response_code(301);
header('Location: https://new.example.com/page');
exit;
301 重定向告知浏览器和搜索引擎该更改是永久性的。必须包含 Location 标头。重定向标头后始终退出。
自定义维护页面
此示例显示了一个带有 503 Service Unavailable 状态的维护页面。
<?php
declare(strict_types=1);
http_response_code(503);
header('Retry-After: 3600'); // 1 hour
?>
<!DOCTYPE html>
<html>
<head>
<title>Maintenance</title>
</head>
<body>
<h1>Down for Maintenance</h1>
<p>We'll be back soon!</p>
</body>
</html>
503 表示临时不可用。Retry-After 建议何时重试。这对于计划的维护时段很有用。可以包含 HTML 内容。
最佳实践
- 早期执行: 在任何输出之前设置状态码
- 终止: 考虑在错误代码后退出
- 验证: 使用标准的 HTTP 状态码
- 标头: 与其他相关标头结合使用
- 文档: 在 API 中记录预期的状态码
来源
本教程通过实际示例涵盖了 PHP 的 http_response_code 函数,适用于 Web 开发和 API 响应。
作者
列出 所有 PHP 网络函数。