您的位置:

PHP Header 使用指南

一、header是什么?

PHP的header函数用于将HTTP消息头发送到客户端浏览器,可以让浏览器执行一些操作,比如重定向、设定缓存等。 header不仅仅是字符串。它是由PHP自动统一合成,然后以HTTP包的形式发送到客户端的。 header 必须在实际输出内容之前被调用,即在浏览器输出内容之前。

二、header函数的语法

header 函数有1-3个参数,建议使用两个参数,第三个很少使用:

    void header(string $string[, bool $replace = true[, int $http_response_code]]);

其中,第一个参数为字符串,表示需要发送的HTTP协议头信息。第二个参数replace的默认值为true,即表示将之前的同名header信息替换掉。如果第二个参数replace的值为true,则会将之前的与该header具有相同名称的header信息取消。

第三个参数返回的是web服务器的响应状态码,比如 404 没有找到等。如果该参数设置为0,则不会发送状态码,还可以跟第一个参数一样在字符串中直接赋值。

三、header函数的例子

1、重定向

重定向是指让浏览器通过header的Location内容对另一个URL发送请求,这样就实现了页面的重定向。

//重定向到baidu.com页面
header("Location: https://www.baidu.com/"); 

2、设置缓存

我们可以通过header来控制网页的缓存时间,以达到减轻服务器负担、提高页面响应速度的效果。

//设置缓存30秒
header("Cache-control: public, max-age=30");

3、下载文件

我们可以通过header来控制浏览器下载本地的资源。

//下载文件
header('Content-Disposition: attachment; filename="file.gif"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize('file.gif'));
header('Connection: close');
readfile('file.gif');

4、设置响应状态码

我们可以通过header来设置HTTP状态码。

//设置404状态码
header("HTTP/1.1 404 Not Found");

四、header函数的注意事项

1、必须在浏览器输出内容之前先调用header函数。

2、header函数必须在所有的PHP标记之外调用。

3、header函数不能处理已经被压缩的页面内容。

4、header函数不能在输出文件之后调用(只适用于输出到浏览器的文件)。

五、总结

header函数是PHP中非常重要的一个函数,支持多种协议、多种功能,可以完成多种操作。不过在使用header函数时,也要注意不能滥用,否则有可能造成安全问题。希望以上内容能够对读者有所帮助。