PHP函数-header():设置HTTP响应头信息
在 PHP 中,header() 函数被广泛用于设置 HTTP 响应头信息。HTTP 响应头信息是指服务器发送给浏览器的一些元数据,包括 Content-Type、Cache-Control、Set-Cookie 等。
header() 函数的语法如下:
header ( string $string [, bool $replace = true [, int $http_response_code ]] ) : void
- $string:必需,要发送的头信息,例如 "Content-Type: text/html"。
- $replace:可选,一个布尔值,指定是否覆盖之前发送的相同类型的头信息。默认值为 true,即需要覆盖。
- $http_response_code:可选,HTTP 响应状态码,例如 404 表示“未找到”。默认值为 200,即“OK”。
下面是一些常用的用法:
### 1. 设置 Content-Type
Content-Type 是指响应体中的内容类型,常见的有 text/html、application/json 等。下面的例子将响应的内容类型设置为 JSON 格式:
header('Content-Type: application/json');
### 2. 设置下载文件的文件名
如果要让浏览器下载文件,通常需要设置 Content-Disposition 头信息。而 Content-Disposition 头信息中的文件名可以通过 header() 函数来指定。注意,要使用 urlencode 函数来对文件名进行编码.
$file = 'test.pdf';
header('Content-Disposition: attachment; filename="'.urlencode($file).'"');
header('Content-Type: application/octet-stream');
header('Content-Length: '.filesize($file));
readfile($file);
### 3. 设置缓存控制
缓存控制是指设置浏览器对页面的缓存策略,可以通过 header() 函数中的 Cache-Control 和 Expires 头信息来实现。
header('Cache-Control: no-cache, no-store, must-revalidate');
header('Expires: Thu, 01 Jan 1970 00:00:00 GMT');
### 4. 设置跨域请求头和状态码
如果要实现跨域请求,需要设置 Access-Control-Allow-Origin 头信息,并且响应状态码为 200。
header('Access-Control-Allow-Origin: *');
http_response_code(200);
总之,header() 函数是 PHP 中非常重要的一个函数,用来设置 HTTP 响应头信息,可以实现很多中有用的功能。需要注意的是,header() 函数必须在输出页面内容之前调用,否则会出现 “headers already sent” 错误。
