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 相关文章推荐
通过ODBC连接的SQL SERVER实例
Oct 09 PHP
PHP 表单提交给自己
Jul 24 PHP
php中文乱码怎么办如何让浏览器自动识别utf-8
Jan 15 PHP
smarty缓存用法分析
Dec 16 PHP
PHP生成唯一订单号的方法汇总
Apr 16 PHP
PHP实现多维数组转字符串和多维数组转一维数组的方法
Aug 08 PHP
基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
Sep 23 PHP
PHP+JS实现的商品秒杀倒计时用法示例
Nov 15 PHP
php显示页码分页类的封装
Jun 08 PHP
PHP实现按之字形顺序打印二叉树的方法
Jan 16 PHP
php的优点总结 php有哪些优点
Jul 19 PHP
laravel Validator ajax返回错误信息的方法
Sep 29 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中防止SQL注入最好的方法是什么
2013/06/10 PHP
ZF框架实现发送邮件的方法
2015/12/03 PHP
Thinkphp微信公众号支付接口
2016/08/04 PHP
PHP常用函数总结(180多个)
2016/12/25 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
2019/03/30 PHP
jQuery AJAX 调用WebService实现代码
2010/03/24 Javascript
《JavaScript高级程序设计》阅读笔记(三) ECMAScript中的引用类型
2012/02/27 Javascript
JQuery获取各种宽度、高度(format函数)实例
2013/03/04 Javascript
alert出数组中的随即值代码
2014/09/25 Javascript
JavaScript Date对象详解
2016/03/01 Javascript
利用jQuery实现打字机字幕效果实例代码
2016/09/02 Javascript
JS动态给对象添加属性和值的实现方法
2016/10/21 Javascript
js遮罩效果制作弹出注册界面效果
2017/01/25 Javascript
vue单页应用加百度统计代码(亲测有效)
2018/01/31 Javascript
微信小程序保存图片到相册权限设置
2020/04/09 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
2020/11/09 Javascript
[03:46]DOTA2英雄基础教程 维萨吉
2013/12/11 DOTA
[00:37]2016完美“圣”典风云人物:AMS宣传片
2016/12/06 DOTA
简单介绍Python中的try和finally和with方法
2015/05/05 Python
Python的Django中将文件上传至七牛云存储的代码分享
2016/06/03 Python
怎样使用Python脚本日志功能
2016/08/14 Python
在pandas中一次性删除dataframe的多个列方法
2018/04/10 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
浅谈numpy生成数组的零值问题
2018/11/12 Python
利用python修改json文件的value方法
2018/12/31 Python
python 实现方阵的对角线遍历示例
2019/11/29 Python
Django封装交互接口代码
2020/07/12 Python
美国在线眼镜店:GlassesShop
2018/11/15 全球购物
新西兰优惠网站:Treat Me
2019/07/04 全球购物
欧舒丹俄罗斯官方网站:L’OCCITANE俄罗斯
2019/11/22 全球购物
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
民事诉讼代理授权委托书范本
2014/10/08 职场文书
教师培训学习心得体会
2016/01/21 职场文书
2019同学聚会主持词
2019/05/06 职场文书
【海涛教你打DOTA】剑圣第一人称视角解说
2022/04/01 DOTA
Win10鼠标宏怎么设置?win10系统鼠标宏的设置方法
2022/08/14 数码科技