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 相关文章推荐
在PHP里得到前天和昨天的日期的代码
Aug 16 PHP
PHP 多进程 解决难题
Jun 22 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
Mar 27 PHP
PHP使用mysql_fetch_row查询获得数据行列表的方法
Mar 18 PHP
php生成年月日下载列表的方法
Apr 24 PHP
php图像处理类实例
Jul 28 PHP
php时间函数用法分析
May 28 PHP
PHP在linux上执行外部命令的方法
Feb 06 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
May 02 PHP
php创建多级目录与级联删除文件的方法示例
Sep 12 PHP
Laravel自动生成UUID,从建表到使用详解
Oct 24 PHP
PHP 对象接口简单实现方法示例
Apr 13 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
5.PHP的其他功能
2006/10/09 PHP
PHP中redis的用法深入解析
2014/02/20 PHP
php注册和登录界面的实现案例(推荐)
2016/10/24 PHP
PHP实现在数据库百万条数据中随机获取20条记录的方法
2017/04/19 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
2018/12/21 PHP
JavaScript 动态将数字金额转化为中文大写金额
2009/05/14 Javascript
Javascript 错误处理的几种方法
2009/06/13 Javascript
JavaScript Konami Code 实现代码
2009/07/29 Javascript
人人网javascript面试题 可以提前实现下
2012/01/05 Javascript
JavaScript中最简洁的编码html字符串的方法
2014/10/11 Javascript
用js判断是否为360浏览器的实现代码
2015/01/15 Javascript
javascript实现的淘宝旅行通用日历组件用法实例
2015/08/03 Javascript
JavaScript无缝滚动效果的实例代码
2017/03/27 Javascript
js实现移动端编辑添加地址【模仿京东】
2017/04/28 Javascript
深入浅析javascript函数中with
2018/10/28 Javascript
async/await优雅的错误处理方法总结
2019/01/30 Javascript
小程序显示弹窗时禁止下层的内容滚动实现方法
2019/03/20 Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
2020/12/09 Javascript
[52:40]完美世界DOTA2联赛PWL S2 Magma vs GXR 第一场 11.29
2020/12/02 DOTA
python基础教程之基本内置数据类型介绍
2014/02/20 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
2018/12/14 Python
Python设计模式之桥接模式原理与用法实例分析
2019/01/10 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
2019/06/19 Python
python Tcp协议发送和接收信息的例子
2019/07/22 Python
python将字母转化为数字实例方法
2019/10/04 Python
浅谈keras的深度模型训练过程及结果记录方式
2020/01/24 Python
Python利用PyPDF2库获取PDF文件总页码实例
2020/04/03 Python
Python: glob匹配文件的操作
2020/12/11 Python
一款纯css3实现的非常实用的鼠标悬停特效演示
2014/11/05 HTML / CSS
八年级数学教学反思
2014/01/31 职场文书
建筑安全员岗位职责
2014/03/13 职场文书
《中国梦我的梦》小学生演讲稿
2014/08/20 职场文书
项目安全员岗位职责
2015/02/15 职场文书
团员自我评价范文
2015/03/10 职场文书
入党介绍人意见怎么写
2015/06/03 职场文书
校园音乐节目广播稿
2015/08/19 职场文书