一、setheaderdata
setheaderdata
是一个设置 headers 的函数,headers 是包含 HTTP 请求信息的一种标准格式,它存储了要发送的请求信息。在 HTTP 请求中,headers 是一个字符串组成的列表,其中每个字符串是一个或多个字段,每个字段包含名称和值,名称和值用冒号分隔。
以下是 setheaderdata
的一些用例:
// 设置 Content-Type 为 text/html;charset=utf-8
header('Content-Type: text/html;charset=utf-8');
// 设置 Content-Length 为 12345
header('Content-Length: 12345');
// 设置 Expires 为当前时间+60秒
header('Expires: ' . gmdate('D, d M Y H:i:s', time()+60) . ' GMT');
二、setheader方法的作用
setheader
函数用于设置 HTTP 的响应头或者请求头。HTTP 头由键值对组成。在响应头中,会告知客户端如何处理返回的内容,比如 Content-Type
、Content-Encoding
等;在请求头中,会告诉服务端请求的信息,比如 User-Agent
、Cookie
等。
三、setheader方法
setheader
函数用于设置 HTTP 头部信息。在传输 HTTP 报文时,首先发送 HTTP 头部,然后再发送响应实体的内容。setheader
函数可以设置 HTTP 头信息,例如 Content-Type
、Content-Disposition
、Location
、Cache-Control
等等。
以下是 setheader
的一些用例:
// 设置Content-Type为application/x-www-form-urlencoded
header('Content-Type: application/x-www-form-urlencoded');
// 打开PDF的方式为网页打开
header("Content-Disposition: inline; filename=result.pdf");
header("Content-Type: application/pdf");
// 设置跳转网址
header('Location: http://www.example.com/');
// 禁止浏览器缓存
header('Cache-Control: no-cache, no-store, must-revalidate');
header('Pragma: no-cache');
header('Expires: 0');
四、setheader 标题
setheader
标题用于告诉服务器返回的文档的标题。设置了标题后,将会在浏览器顶部的文档标题栏或者标签页上显示。
以下是 setheader
的一个用例:
header('Content-Type: text/html; charset=utf-8');
header('title: This is the title of the page');
五、setheaderhidden
setheaderhidden
函数可以隐藏一个 HTTP 头字段,不再 HTTP 响应头中出现,而是在 HTTP 报文正文中出现。通常用于传递一些隐私信息,如 session。
以下是 setheaderhidden
的一个用例:
header('X-Auth-Token: ' . $token, false);
六、setheader set-cookie
setheader set-cookie
函数用于向客户端设置 cookie 信息。
以下是 setheader set-cookie
的一个用例:
setcookie('name', 'value', time()+3600);
七、setheader session
在 HTTP 请求中,session 信息通常是通过 Cookie 传递,所以我们可以通过 setheader set-cookie
将 session 信息存储到客户端的 Cookie 中。服务端在需要时可以读取客户端提交的 Cookie,从而获取 session 信息。
以下是一个获取用户登录信息的例子:
session_start();
if (!isset($_SESSION['user'])) {
header('Location: login.php');
exit();
}
echo 'Welcome ' . $_SESSION['user'];
八、setheader content-disposition
通过 setheader content-disposition
,可以强制浏览器下载文件,而不是在浏览器中打开。通常用于下载 PDF、Word、Excel 文件等。
以下是 setheader content-disposition
的一个用例:
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="downloaded.pdf"');
九、setheaderdata 隐藏标签方法
setheaderdata
隐藏标签方法用于指定标志,该头部中的信息会被代理和缓存忽略,只在端到端的请求(即服务器到客户端的请求)中使用。
以下是 setheaderdata
隐藏标签方法的一个用例:
header('Cache-Control: private, no-store, no-cache, must-revalidate, post-check=0, pre-check=0', false);
十、addheader和setheader
addheader
和 setheader
的作用类似,都是设置 HTTP 头信息。但是,如果使用 addheader
函数指定的标题与 setheader
函数指定的标题相同,则会在其后添加一个值,而使用 setheader
函数指定的标题将替换之前指定的标题。
以下是 addheader
和 setheader
的一个用例:
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control', 'private'); // 替换上面的Cache-Control
header('Cache-Control', 'max-age:3600', false); // 添加Cache-Control
通过上面的例子可以看到,如果 setheader
函数的第二个参数为 true
,则添加相同名称的 header。