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 相关文章推荐
模仿OSO的论坛(一)
Oct 09 PHP
解决控件遮挡问题:关于有窗口元素和无窗口元素
Jan 28 PHP
php cout<<的一点看法
Jan 24 PHP
php类常量的使用详解
Jun 08 PHP
php 检查电子邮件函数(自写)
Jan 16 PHP
php通过sort()函数给数组排序的方法
Mar 18 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
Jun 24 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
Mar 17 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
May 20 PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
Oct 17 PHP
PHP空值检测函数与方法汇总
Nov 19 PHP
PHP+Apache实现二级域名之间共享cookie的方法
Jul 24 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入门速成教程
2007/03/19 PHP
PHP的分页功能
2007/03/21 PHP
php多线程并发实现方法
2016/09/30 PHP
PHP登录(ajax提交数据和后台校验)实例分享
2016/12/29 PHP
Array对象方法参考
2006/10/03 Javascript
一些经常会用到的Javascript检测函数
2010/05/31 Javascript
Dojo 学习要点
2010/09/03 Javascript
js下通过getList函数实现分页效果的代码
2010/09/17 Javascript
jQuery事件 delegate()使用方法介绍
2012/10/30 Javascript
jQuery中slice()方法用法实例
2015/01/07 Javascript
细数JavaScript 一个等号,两个等号,三个等号的区别
2016/10/09 Javascript
纯原生js实现table表格的增删
2017/01/05 Javascript
web打印小结
2017/01/11 Javascript
jQuery实现动态给table赋值的方法示例
2017/07/04 jQuery
mui框架 页面无法滚动的解决方法(推荐)
2018/01/25 Javascript
详解Python中的__getitem__方法与slice对象的切片操作
2016/06/27 Python
在python3.5中使用OpenCV的实例讲解
2018/04/02 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
2019/09/10 Python
Python生态圈图像格式转换问题(推荐)
2019/12/02 Python
pytorch构建多模型实例
2020/01/15 Python
NBA欧洲商店(英国):NBA Europe Store UK
2018/07/27 全球购物
手术室护士自我鉴定
2013/10/14 职场文书
医院护士专业个人的求职信
2013/12/09 职场文书
最新党员思想汇报
2014/01/01 职场文书
演讲稿祖国在我心中
2014/05/04 职场文书
国庆节演讲稿
2014/05/27 职场文书
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
督导岗位职责范本
2015/04/10 职场文书
整脏治乱工作简报
2015/07/21 职场文书
2019企业给员工的慰问信
2019/06/24 职场文书
HTML5中 rem适配方案与 viewport 适配问题详解
2021/04/27 HTML / CSS
SQL实现LeetCode(175.联合两表)
2021/08/04 MySQL
python3中apply函数和lambda函数的使用详解
2022/02/28 Python
Python 数据可视化工具 Pyecharts 安装及应用
2022/04/20 Python
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang
详解CSS中postion和opacity及cursor的特性
2022/08/14 HTML / CSS