PHP中header函数的用法及其注意事项详解


Posted in PHP onJune 13, 2016
void header ( string $string [, bool $replace = true [, int $http_response_code ]] ) : Send a raw HTTP header

下面有一些使用header的几种用法:

1、使用header函数进行跳转页面;

header('Location:'.$url);

其中$url就是将要跳转的url了。

这种用法的注意事项有以下几点:

•Location和":"之间不能有空格,否则会出现错误(注释:我刚测试了,在我本地环境下,没有跳转页面,但是也没有报错,不清楚什么原因);

•在用header前不能有任何的输出(注释:这点大家都知道的,如果header之前有任何的输出,包括空白,就会出现header already sent by xxx的错误);

•header 后面的东西还会执行的;

2、使用header声明content-type

header('content-type:text/html;charset=utf-8');

这个没有什么好说的;

3、使用header返回response 状态码

header(sprintf('%s %d %s', $http_version, $status_code, $description));

样式就是这样的;

例如:header('HTTP/1.1 404 Not Found');

4、使用header在某个时间后执行跳转

 header("Refresh: {$delay}; url={$url}");

 其中$delay就是推迟跳转的时间,$url为需要跳转的url

 例如:header('Refresh: 10; url=http://www.example.org/'); 意思为10s后跳转到http://www.eexample.org这个网站

5、使用header控制浏览器缓存

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进行下载操作

header('Content-Type: application/octet-stream');//设置内容类型
header('Content-Disposition: attachment; filename="example.zip"'); //设置MIME用户作为附件下载 如果将attachment换成inline意思为在线打开
header('Content-Transfer-Encoding: binary');//设置传输方式
header('Content-Length: '.filesize('example.zip'));//设置内容长度
// load the file to send:
readfile('example.zip');//读取需要下载的文件

下面再给大家介绍PHP header 的几种用法

跳转页面

header('Location:'.$url); //Location和":"之间无空格。

声明content-type

header('content-type:text/html;charset=utf-8');

返回response状态码

header('HTTP/1.1 404 Not Found');

在某个时间后执行跳转

header('Refresh: 10; url=http://www.baidu.com/'); //10s后跳转。

控制浏览器缓存

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");

执行http验证

header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Basic realm="Top Secret"');

执行下载操作

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

PHP 相关文章推荐
Discuz 5.0 中读取纯真IP数据库函数分析
Mar 16 PHP
php intval的测试代码发现问题
Jul 27 PHP
解析php入库和出库
Jun 25 PHP
php中动态调用函数的方法
Mar 16 PHP
PHP异常处理浅析
May 12 PHP
PHP计算加权平均数的方法
Jul 16 PHP
PHP中常见的缓存技术实例分析
Sep 23 PHP
Smarty模板简单配置与使用方法示例
May 23 PHP
利用ajax和PHP实现简单的流程管理
Mar 23 PHP
php + ajax 实现的写入数据库操作简单示例
May 16 PHP
php+websocket 实现的聊天室功能详解
May 27 PHP
Yii实现微信公众号场景二维码的方法实例
Aug 30 PHP
PHP的时间戳与具体时间转化的简单实现
Jun 13 #PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
Jun 13 #PHP
Netbeans 8.2将支持PHP7 更精彩
Jun 13 #PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
Jun 13 #PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
Jun 13 #PHP
PHPStorm+XDebug进行调试图文教程
Jun 13 #PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
Jun 13 #PHP
You might like
PHP自动选择 连接本地还是远程数据库
2010/12/02 PHP
调试一段PHP程序时遇到的三个问题
2012/01/17 PHP
dedecms集成财付通支付接口
2014/12/28 PHP
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
javascript 运算数的求值顺序
2011/08/23 Javascript
Js动态添加复选框Checkbox的实例方法
2013/04/08 Javascript
微信小程序 二维码canvas绘制实例详解
2017/01/06 Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/06 Javascript
Vue不能检测到Object/Array更新的情况的解决
2018/06/26 Javascript
js针对图片加载失败的处理方法分析
2019/08/24 Javascript
Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解
2020/03/29 Javascript
[46:10]2014 DOTA2国际邀请赛中国区预选赛 CnB VS HGT
2014/05/21 DOTA
[57:16]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第二场
2014/05/26 DOTA
[01:07]2015国际邀请赛 中国区预选赛精彩回顾
2015/06/15 DOTA
Python 元类使用说明
2009/12/18 Python
对比Python中__getattr__和 __getattribute__获取属性的用法
2016/06/21 Python
Python中实现变量赋值传递时的引用和拷贝方法
2018/04/29 Python
python随机在一张图像上截取任意大小图片的方法
2019/01/24 Python
python将excel转换为csv的代码方法总结
2019/07/03 Python
python 实现批量替换文本中的某部分内容
2019/12/13 Python
python实现启动一个外部程序,并且不阻塞当前进程
2020/12/05 Python
HTML5中Localstorage的使用教程
2015/07/09 HTML / CSS
Ever New加拿大官网:彰显女性美
2018/10/05 全球购物
Hammitt官网:设计师手袋
2020/05/23 全球购物
室内设计自我鉴定
2013/10/15 职场文书
安全教育实施方案
2014/03/02 职场文书
股份合作协议书范本
2014/04/14 职场文书
关工委先进个人事迹材料
2014/05/23 职场文书
普通党员四风问题对照检查材料
2014/09/27 职场文书
2015年招聘工作总结
2014/12/12 职场文书
师德师风培训感言
2015/08/03 职场文书
销售口号霸气押韵
2015/12/24 职场文书
公司会议开幕词
2016/03/03 职场文书
left join、inner join、right join的区别
2021/04/05 MySQL
pytorch中的model.eval()和BN层的使用
2021/05/22 Python
用Python可视化新冠疫情数据
2022/01/18 Python