PHP中的header函数详解及应用示例
header函数是PHP中用于发送HTTP头信息的函数,常用于设置响应的Content-Type、Cache-Control、Location等头信息,也可用于设置HTTP状态码。
语法:
header ( string $string [, bool $replace = true [, int $http_response_code ]] ) : void
参数说明:
string:必需。规定要发送的Header字符串。
replace:可选。指定是否用新的Header替换之前的Header,默认为true。
http_response_code:可选。为响应设置http状态码。
应用示例:
一、设置Content-Type
header("Content-Type:text/html;charset=utf-8");
在使用PHP输出HTML内容时,为了防止出现乱码,需要设置Content-Type的编码格式,这样浏览器才能正确识别网页编码。以上示例中,Charset=utf-8表示采用UTF-8编码格式。
二、设置Cache-Control
header("Cache-Control: no-cache, must-revalidate");
Cache-Control是浏览器用于缓存控制的一个头信息,no-cache指示浏览器不使用缓存,而是每次都服务器重新请求数据。
三、设置Location重定向
header("Location: http://www.example.com");
使用Location头信息可以实现网页重定向,以上示例中将页面导向到了www.example.com。
四、设置HTTP状态码
header("HTTP/1.1 404 Not Found");
通过设置HTTP状态码,可以让服务器向客户端回应不同的状态信息,大致分为以下几类:
1xx:表示接受到请求并且继续处理。
2xx:表示请求已经成功接收和处理。
3xx:表示需要进一步操作以完成请求,例如重定向。
4xx:表示客户端请求的语法错误或请求无法实现。
5xx:表示服务端出现错误,无法完成请求。
以上示例中返回了404 Not Found,表示找不到请求的资源。
五、设置文件下载
header("Content-type:application/octet-stream");
header("Content-Disposition: attachment;filename=example.zip");
readfile("example.zip");
以上示例中,将Content-Type设置为application/octet-stream,表示是二进制文件,Content-Disposition设置为attachment,表示将文件下载到本地,通过readfile函数输出文件内容。
总之,header函数在网络编程中非常常见,可以灵活控制HTTP头信息,达到一些定制化、复杂化的需求。需要注意的是,调用header函数要在输出内容之前,否则会出现“报错提示无法修改header”。
