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 相关文章推荐
Windows IIS PHP 5.2 安装与配置方法
Jun 08 PHP
PHP 日常开发小技巧
Sep 23 PHP
PHP 抓取新浪读书频道的小说并生成txt电子书的代码
Dec 18 PHP
php 数组的合并、拆分、区别取值函数集
Feb 15 PHP
PHP操作MongoDB GridFS 存储文件的详解
Jun 20 PHP
php中url传递中文字符,特殊危险字符的解决方法
Aug 17 PHP
Cygwin中安装PHP方法步骤
Jul 04 PHP
浅谈使用PHP开发微信支付的流程
Oct 04 PHP
PHP实现冒泡排序的简单实例
May 26 PHP
php与c 实现按行读取文件实例代码
Jan 03 PHP
PHP实现基于回溯法求解迷宫问题的方法详解
Aug 17 PHP
PHP开发api接口安全验证操作实例详解
Mar 26 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&java(三)
2006/10/09 PHP
php模拟socket一次连接,多次发送数据的实现代码
2011/07/26 PHP
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
2012/09/23 PHP
thinkphp学习笔记之多表查询
2014/07/28 PHP
ThinkPHP上使用多说评论插件的方法
2014/10/31 PHP
Codeigniter购物车类不能添加中文的解决方法
2014/11/29 PHP
PHP框架性能测试报告
2016/05/08 PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
2019/02/28 PHP
Laravel5.1框架注册中间件的三种场景详解
2019/07/09 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
2019/11/09 PHP
javascript 获取网页参数系统
2008/07/19 Javascript
如何在一个页面显示多个百度地图
2013/04/07 Javascript
jQuery基本选择器选择元素使用介绍
2013/04/18 Javascript
代码触发js事件(click、change)示例应用
2013/12/13 Javascript
js中用window.open()打开多个窗口的name问题
2014/03/13 Javascript
javaScript如何跳出多重循环break、continue
2016/09/01 Javascript
Node.JS中事件轮询(Event Loop)的解析
2017/02/25 Javascript
微信小程序中子页面向父页面传值实例详解
2017/03/20 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
vue中eventbus被多次触发以及踩过的坑
2017/12/02 Javascript
小程序实现列表点赞功能
2018/11/02 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
2019/08/05 Javascript
使用IronPython把Python脚本集成到.NET程序中的教程
2015/03/31 Python
python实现根据文件关键字进行切分为多个文件的示例
2018/12/10 Python
Django实现网页分页功能
2019/10/31 Python
PyCharm使用之配置SSH Interpreter的方法步骤
2019/12/26 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
2020/01/15 Python
Python爬虫:Request Payload和Form Data的简单区别说明
2020/04/30 Python
matlab、python中矩阵的互相导入导出方式
2020/06/01 Python
HTML5新特性之用SVG绘制微信logo
2016/02/03 HTML / CSS
凯普林包包西班牙官网:Kipling西班牙
2019/04/12 全球购物
军用级手机壳,专为冒险而建:Zizo Wireless
2019/08/07 全球购物
环境工程大学生自荐信
2013/10/21 职场文书
银行委托书范本
2014/04/04 职场文书
路政管理求职信
2014/06/18 职场文书
高中综合实践活动总结
2014/07/07 职场文书