php header函数详解

  说起 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-type

header('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')); //设置内容长度





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值