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 相关文章推荐
解决中英文字符串长度问题函数
Jan 16 PHP
一个自定义位数的php多用户计数器代码
Mar 11 PHP
一个比较简单的PHP 分页分组类
Dec 10 PHP
五款常用mysql slow log分析工具的比较分析
May 22 PHP
Session服务器配置指南与使用经验的深入解析
Jun 17 PHP
php结合正则获取字符串中数字
Jun 19 PHP
POST一个JSON格式的数据给Restful服务实例详解
Apr 07 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
Nov 17 PHP
PHP判断是否是微信打开,浏览器打开的方法
Mar 14 PHP
在 PHP 和 Laravel 中使用 Traits的方法
Nov 13 PHP
基于PHP实现用户登录注册功能的详细教程
Aug 04 PHP
PHP sdk文档处理常用代码示例解析
Dec 09 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
多文件上传的例子
2006/10/09 PHP
PHP实现采集程序原理和简单示例代码
2007/03/18 PHP
[原创]php集成安装包wampserver修改密码后phpmyadmin无法登陆的解决方法
2016/11/23 PHP
Laravel 登录后清空COOKIE的操作方法
2019/10/14 PHP
javascript Array数组对象的扩展函数代码
2010/05/22 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
JavaScript中判断整字类型最简洁的实现方法
2014/11/08 Javascript
js用拖动滑块来控制图片大小的方法
2015/02/27 Javascript
javascript实现校验文件上传控件实例
2015/04/20 Javascript
如何消除inline-block属性带来的标签间间隙
2016/03/31 Javascript
通过扫描二维码打开app的实现代码
2016/11/10 Javascript
javascript实现页面滚屏效果
2017/01/17 Javascript
微信扫码支付零云插件版实例详解
2017/04/26 Javascript
分享19个JavaScript 有用的简写写法
2017/07/07 Javascript
JS中Swiper的使用和轮播图效果
2017/08/11 Javascript
深入理解vuex2.0 之 modules
2017/11/20 Javascript
node.js中axios使用心得总结
2017/11/29 Javascript
bootstrap3中container与container_fluid外层容器的区别讲解
2017/12/04 Javascript
小程序数据通信方法大全(推荐)
2019/04/15 Javascript
angular 服务随记小结
2019/05/06 Javascript
通过vue.extend实现消息提示弹框的方法记录
2021/01/07 Vue.js
Tornado Web服务器多进程启动的2个方法
2014/08/04 Python
Python实现的计数排序算法示例
2017/11/29 Python
Python入门学习指南分享
2018/04/11 Python
Django学习教程之静态文件的调用详解
2018/05/08 Python
对python中两种列表元素去重函数性能的比较方法
2018/06/29 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
html通过canvas转成base64的方法
2019/07/18 HTML / CSS
宝拉珍选官方旗舰店:2%水杨酸精华液,收缩毛孔粗大和祛痘
2018/07/01 全球购物
保荐人的岗位职责
2013/11/19 职场文书
大学社团活动策划书
2014/01/26 职场文书
统计岗位职责
2014/02/21 职场文书
公益广告标语
2014/06/19 职场文书
初中物理教学反思
2016/02/19 职场文书
python 实现两个变量值进行交换的n种操作
2021/06/02 Python
Oracle查看表空间使用率以及爆满解决方案详解
2022/07/23 Oracle