您的位置:首页 > 编程语言 > PHP开发

php header函数详解

2018-03-01 15:27 267 查看
  说起 php 的header函数  肯定没有人不知道,但是 如果 面试的时候让你谈谈对header的认识 ,恐怕好多人都要抓瞎啦。
下面咱们就来详细聊聊 php的这个header
首先呢 自然 要从手册说起了,
一: 手册:

         header — 发送原生 HTTP 头
     void header ( string 
$string
 [, bool 
$replace
 = true [, int 
$http_response_code
 ]] )

    
replace
可选参数 
replace
 表明是否用后面的头替换前面相同类型的头。 默认情况下会替换。如果传入 
FALSE
,就可以强制使相同的头信息并存。例如:
http_response_code
强制指定HTTP响应的值。注意,这个参数只有在报文字符串(
string
)不为空的情况下才有效。                    请注意 header() 必须在任何实际输出之前调用,不管是普通的 HTML 标签,还是文件或 PHP 输出的空行,空格。这是个常见的错误,在通过includerequire,或者其访问其他文件里面的函数的时候,如果在header()被调用之前,其中有空格或者空行。 同样的问题也存在于单独的 PHP/HTML 文件中。

    两种 特别的头
1、以“HTTP/”开头的 (case is not significant),将会被用来计算出将要发送的HTTP状态码。 例如在 Apache 服务器上用 PHP 脚本来处理不存在文件的请求(使用 ErrorDocument 指令), 就会希望脚本响应了正确的状态码。
eg:header("HTTP/1.0 404 Not Found");

2、是“Location:”的头信息。它不仅把报文发送给浏览器,而且还将返回给浏览器一个 REDIRECT(302)的状态码,除非状态码已经事先被设置为了201或者3xx。
eg:header("Location: http://www.example.com/");
二:用法1跳转页面header('Location:'.$url);  //Location和":"之间无空格。
2.声明content-typeheader('content-type:text/html;charset=utf-8');
3.在某个时间后执行跳转header('Refresh: 10; url=http://www.baidu.com/');  //10s后跳转。
4.返回response状态码header('HTTP/1.1 404 Not Found');
5.控制浏览器缓存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");
6.执行http验证
header('HTTP/1.1 401 Unauthorized');

header('WWW-Authenticate: Basic realm="Top Secret"');
7. 执行下载操作
header('Content-Type: application/octet-stream'); //设置内容类型
header('Content-Disposition: attachment; filename="example.zip"'); //设置MIME用户作为附件
header('Content-Transfer-Encoding: binary'); //设置传输方式
header('Content-Length: '.filesize('example.zip')); //设置内容长度
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: