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发送邮件类代码附详细说明
Jul 10 PHP
php file_get_contents函数轻松采集html数据
Apr 22 PHP
PHP5.3与5.5废弃与过期函数整理汇总
Jul 10 PHP
php中的观察者模式简单实例
Jan 20 PHP
PHP使用gmdate实现将一个UNIX 时间格式化成GMT文本的方法
Mar 19 PHP
php检查日期函数checkdate用法实例
Mar 19 PHP
php简单获取目录列表的方法
Mar 24 PHP
PHP实现事件机制实例分析
Jun 26 PHP
3种php生成唯一id的方法
Nov 23 PHP
PHP实现的曲线统计图表示例
Nov 10 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
Feb 15 PHP
Django 标签筛选的实现代码(一对多、多对多)
Sep 05 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执行速率优化技巧小结
2008/03/15 PHP
一个比较简单的PHP 分页分组类
2009/12/10 PHP
Windows下安装Memcached的步骤说明
2010/04/25 PHP
PHP封装的Twitter访问类实例
2015/07/18 PHP
PHP获取当前文件的父目录方法汇总
2016/07/21 PHP
PHP实现的方程求解示例分析
2016/11/11 PHP
微信JSSDK分享功能图文实例详解
2019/04/08 PHP
JS启动应用程序的一个简单例子
2008/05/11 Javascript
Tab页界面 用jQuery及Ajax技术实现(php后台)
2011/10/12 Javascript
jquery 表格排序、实时搜索表格内容(附图)
2014/05/19 Javascript
JavaScript模块化开发之SeaJS
2015/12/13 Javascript
jquery ajax分页插件的简单实现
2016/01/27 Javascript
有关JavaScript中call()和apply() 的一些理解
2016/05/20 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
2016/05/25 Javascript
深入理解JavaScript单体内置对象
2016/06/06 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
2016/08/10 Javascript
简单理解vue中Props属性
2016/10/27 Javascript
原生js实现中奖信息无间隙滚动效果
2017/01/18 Javascript
AngularJS动态菜单操作指令
2017/04/25 Javascript
sublime text配置node.js调试(图文教程)
2017/11/23 Javascript
基于vue.js实现的分页
2018/03/13 Javascript
微信小程序中使用ECharts 异步加载数据实现图表功能
2018/07/13 Javascript
安装多版本Vue-CLI的实现方法
2020/03/24 Javascript
Python Mysql自动备份脚本
2008/07/14 Python
Python命令启动Web服务器实例详解
2017/02/23 Python
python3的数据类型及数据类型转换实例详解
2019/08/20 Python
numpy.ndarray 实现对特定行或列取值
2019/12/05 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
浅谈python量化 双均线策略(金叉死叉)
2020/06/03 Python
Python项目跨域问题解决方案
2020/06/22 Python
CSS3动画之流彩文字效果+图片模糊效果+边框伸展效果实现代码合集
2017/08/18 HTML / CSS
尤妮佳moony海外旗舰店:日本殿堂级纸尿裤品牌
2018/02/23 全球购物
园林资料员岗位职责
2013/12/30 职场文书
大学生军训自我鉴定
2014/02/12 职场文书
就业意向书范文
2014/04/01 职场文书
保外就医申请书范文
2015/08/06 职场文书