PHP 中 header()函数的作用是给客户端发送头信息。
什么是头信息?
这里只作简单解释,详细的自己看http协议。
在 HTTP协议中,服务器端的回答(response)内容包括两部分:头信息(header) 和 体内容,这里的头信息不是HTML中的<head></head>部分,同样,体内容也不是<BODY>< /BODY>。头信息是用户看不见的,里面包含了很多项,包括:服务器信息、日期、内容的长度等。而体内容就是整个HTML,也就是你所能看见的全 部东西。
头信息有什么用呢?
头信息的作用很多,最主要的有下面几个:
1、跳转:
Header("Refresh:2; URL=http://localhost//session.php");//2秒后跳转
若等待时间为0,则与header("location:")等效,立即跳转。
Header("Location:http://localhost//session.php");//直接跳转
2、声明content-type,指定网页的内容:
同样一个XML文件,如果头信息中指定:Content-type: application/xml 的话,浏览器会将其按照XML文件格式解析。但是,如果头信息中是:Content-type: text/xml 的话,浏览器就会将其看作存文本解析。(浏览器不是按照扩展名解析文件的)
3、附件下载:
$filename = "tupian.jpg"; //文件路径 可以绝对路径也可以相对路径
header('Content-type: application/x-jpg'); //文件的类型
header('Content-Disposition: attachment; filename="保存时的文件名.jpg"'); //下载显示的名字
readfile("$filename");
exit();
4.查看:
$link = "tupian.jpg"; //文件路径 可以绝对路径也可以相对路径
//$link = "新建文本文档.xml"; //文件路径 可以绝对路径也可以相对路径
if (isset($link))
{
Header("HTTP/1.1 303 See Other");
Header("Location: $link");
exit;
}
5.中文乱码处理:
header('content-type:text/html;charset=utf-8');//中文乱码处理
6.控制浏览器缓存
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
7.执行http验证
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Basic realm="Top Secret"');
8返回response状态码
header('HTTP/1.1 404 Not Found');