PHP中header函数的用法及其注意事项详解
voidheader(string$string[,bool$replace=true[,int$http_response_code]]):SendarawHTTPheader
下面有一些使用header的几种用法:
1、使用header函数进行跳转页面;
header('Location:'.$url);
其中$url就是将要跳转的url了。
这种用法的注意事项有以下几点:
•Location和":"之间不能有空格,否则会出现错误(注释:我刚测试了,在我本地环境下,没有跳转页面,但是也没有报错,不清楚什么原因);
•在用header前不能有任何的输出(注释:这点大家都知道的,如果header之前有任何的输出,包括空白,就会出现headeralreadysentbyxxx的错误);
•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.1404NotFound');
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,26Jul199705:00:00GMT"); header("Last-Modified:".gmdate("D,dMYH:i:s")."GMT"); header("Cache-Control:no-cache,must-revalidate"); header("Pragma:no-cache");
6、执行http验证
header('HTTP/1.1401Unauthorized');
header('WWW-Authenticate:Basicrealm="TopSecret"');
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'));//设置内容长度 //loadthefiletosend: readfile('example.zip');//读取需要下载的文件
下面再给大家介绍PHPheader的几种用法
跳转页面
header('Location:'.$url);//Location和":"之间无空格。
声明content-type
header('content-type:text/html;charset=utf-8');
返回response状态码
header('HTTP/1.1404NotFound');
在某个时间后执行跳转
header('Refresh:10;url=http://www.baidu.com/');//10s后跳转。
控制浏览器缓存
header("Expires:Mon,26Jul199705:00:00GMT");
header("Last-Modified:".gmdate("D,dMYH:i:s")."GMT");
header("Cache-Control:no-cache,must-revalidate");
header("Pragma:no-cache");
执行http验证
header('HTTP/1.1401Unauthorized');
header('WWW-Authenticate:Basicrealm="TopSecret"');
执行下载操作
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'));//设置内容长度