【php设置header参数】在PHP开发中,`header()`函数是一个非常重要的功能,用于向客户端发送原始HTTP头信息。通过设置不同的HTTP头参数,可以控制页面的缓存、重定向、内容类型等行为。以下是对PHP中`header()`函数设置常见参数的总结。
一、header()函数简介
`header()`函数是PHP内置函数,用于发送HTTP头信息。其基本语法如下:
```php
header(string $string, bool $replace = true, int $http_response_code = null)
```
- `$string`: 要发送的HTTP头字符串。
- `$replace`: 是否替换已存在的相同头(默认为true)。
- `$http_response_code`: 可选的HTTP响应状态码。
二、常用header参数及用途
以下是常见的`header()`参数及其作用说明,以表格形式展示:
| 参数名称 | 示例值 | 作用说明 |
| `Location` | `Location: /index.php` | 实现页面跳转或重定向 |
| `Content-Type` | `Content-Type: text/html; charset=utf-8` | 指定返回内容的MIME类型和字符编码 |
| `Cache-Control` | `Cache-Control: no-cache` | 控制浏览器是否缓存页面 |
| `Expires` | `Expires: 0` | 设置页面过期时间(通常配合`Cache-Control`使用) |
| `Pragma` | `Pragma: no-cache` | 兼容旧版HTTP协议的缓存控制 |
| `Set-Cookie` | `Set-Cookie: user=John; path=/` | 设置Cookie信息 |
| `WWW-Authenticate` | `WWW-Authenticate: Basic realm="My Realm"` | 用于HTTP基本认证 |
| `Last-Modified` | `Last-Modified: Wed, 21 Oct 2023 07:28:00 GMT` | 告诉浏览器资源最后修改时间,用于缓存控制 |
| `ETag` | `ETag: "abc123"` | 用于资源版本标识,与`If-None-Match`配合实现条件请求 |
| `Content-Length` | `Content-Length: 1234` | 通知浏览器返回数据的大小(通常由服务器自动处理) |
三、注意事项
- 必须在输出任何内容之前调用`header()`函数,否则会触发错误。
- 多个`header()`调用时,建议使用`header("Location: ...", true, 301)`来明确设置状态码。
- 在设置`Location`头进行跳转时,应确保URL正确,避免出现死循环或无效跳转。
- 使用`Set-Cookie`时,注意路径、域名和安全属性(如`secure`, `httponly`)的设置。
四、示例代码
```php
// 页面跳转
header("Location: https://www.example.com");
// 设置内容类型为JSON
header("Content-Type: application/json; charset=utf-8");
// 禁止缓存
header("Cache-Control: no-cache");
header("Pragma: no-cache");
header("Expires: 0");
// 设置Cookie
header("Set-Cookie: user=John; path=/; HttpOnly");
?>
```
通过合理使用`header()`函数,可以更好地控制HTTP通信过程,提升网站性能和安全性。在实际开发中,建议根据需求灵活配置相关参数。


