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分页显示制作详细讲解
Nov 19 PHP
PHP中文件缓存转内存缓存的方法
Dec 06 PHP
php中json_decode()和json_encode()的使用方法
Jun 04 PHP
php中判断文件存在是用file_exists还是is_file的整理
Sep 12 PHP
PHP实现抓取Google IP并自动修改hosts文件
Feb 12 PHP
php通过strpos查找字符串出现位置的方法
Mar 17 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
Dec 25 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
May 24 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
Jun 10 PHP
Laravel中的Auth模块详解
Aug 17 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
Aug 28 PHP
PHP实现的用户注册表单验证功能简单示例
Feb 25 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
浅析使用Turck-mmcache编译来加速、优化PHP代码
2013/06/20 PHP
C# WinForm中实现快捷键自定义设置实例
2015/01/23 PHP
php运行时动态创建函数的方法
2015/03/16 PHP
php实现微信支付之企业付款
2018/05/30 PHP
Jquery 数组操作大全个人总结
2013/11/13 Javascript
node.js应用后台守护进程管理器Forever安装和使用实例
2014/06/01 Javascript
9款2014最热门jQuery实用特效推荐
2014/12/07 Javascript
jquery+html5制作超酷的圆盘时钟表
2015/04/14 Javascript
jQuery实现下拉加载功能实例代码
2016/04/01 Javascript
基于jQuery的select下拉框选择触发事件实例分析
2016/11/18 Javascript
jQuery实现优雅的弹窗效果(6)
2017/02/08 Javascript
微信小程序页面开发注意事项整理
2017/05/18 Javascript
[js高手之路]设计模式系列课程-发布者,订阅者重构购物车的实例
2017/08/29 Javascript
微信小程序slider组件使用详解
2018/01/31 Javascript
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
2018/03/28 jQuery
浅谈Vue响应式(数组变异方法)
2018/05/07 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
2018/10/23 Javascript
elementUI select组件使用及注意事项详解
2019/05/29 Javascript
详解利用eventemitter2实现Vue组件通信
2019/11/04 Javascript
vscode中Vue别名路径提示的实现
2020/07/31 Javascript
Vue组件通信$attrs、$listeners实现原理解析
2020/09/03 Javascript
node使用async_hooks模块进行请求追踪
2021/01/28 Javascript
[03:11]DOTA2上海特锦赛小组赛第一日recap精彩回顾
2016/02/28 DOTA
Python 调用DLL操作抄表机
2009/01/12 Python
python中zip和unzip数据的方法
2015/05/27 Python
python显示生日是星期几的方法
2015/05/27 Python
python数组循环处理方法
2019/08/26 Python
python实现滑雪游戏
2020/02/22 Python
使用html2canvas实现将html内容写入到canvas中生成图片
2020/01/03 HTML / CSS
JAVA的事件委托机制和垃圾回收机制
2014/09/07 面试题
餐饮营销方案
2014/02/23 职场文书
暑期社会实践先进个人主要事迹
2014/05/22 职场文书
2015年圣诞节活动总结
2015/03/24 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
2021/06/30 SQL Server
MySQL自定义函数及触发器
2022/08/05 MySQL