header函数

WBOY
WBOYOriginal
2016-08-08 09:32:21890Durchsuche

不管页面有多少header,它总是执行最后一个,不过是有条件的,例如:

header('Location:http://www.nowamagic.net'); 
header('Location:http://www.g.cn'); 
header('Location:http://www.baidu.com'); 

这个会跳到百度

header函数的作用

PHP只是以HTTP协议将HTML文档的标头送到浏览器,告诉浏览器怎么处理这个页面,至于传送的内容则需要熟悉下HTTP协议,这与PHP无关。

传统的标头一定是包含下面的三种标头之一,且只能出现一次:

Location: xxxx:yyyy/zzzz 
Content-Type: xxxx/yyyy 
Status: nnn xxxxxx 

HTTP协议运行方式

HTTP协议是基于请求/响应范式的。一个客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为,同意资源标识符、协议版本号,后面是MIME信息,包括请求修饰符、客户机信息和可能内容。服务器接收到请求后,给予响应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。

它分为四个过程,在HTTP协议中,服务端指的是提供HTTP服务的部分,客户端值得是使用的浏览器或下载工具等等。在通讯时,由客户端发出请求连接,服务端建立连接;然后,客户端发出HTTP请求(Request),服务端返回响应信息(Respond),由此完成一个HTTP操作

HTTP协议状态码表示的意义

1××  保留 
2××  表示请求成功地接收 
3××  为完成请求客户需进一步细化请求 
4××  客户错误 
5××  服务器错误   

操作实例

重定向功能

 Header("Location: http://www.php.net/");

强制用户每次访问这个页面时获取最新资料,而不是使用存在客户端的缓存

//告诉浏览器此页面的过期时间(用格林威治时间表示),只要是已经过去的日期即可。 
header("Expires: Mon, 26 Jul 1970 05:00:00 GMT"); 
//告诉浏览器此页面的最后更新日期(用格林威治时间表示)也就是当天,目的就是强迫浏览器获取最新资料 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); 
//告诉客户端浏览器不使用缓存 
header("Cache-Control: no-cache, must-revalidate"); 
//参数(与以前的服务器兼容),即兼容HTTP1.0协议 
header("Pragma: no-cache"); 
//输出MIME类型 
header("Content-type: application/file"); 
//文件长度 
header("Content-Length: 227685"); 
//接受的范围单位 
header("Accept-Ranges: bytes"); 
//缺省时文件保存对话框中的文件名称 
header("Content-Disposition: attachment; filename=$filename"); 


输出状态值到浏览器,主要用于访问权限控制

header('HTTP/1.1 401 Unauthorized');
header('status: 401 Unauthorized');

比如要限制一个用户不能访问该页,则可设置状态为404,如下所示,这样浏览器就显示为即该页不存在
header('HTTP/1.1 404 Not Found');
header("status: 404 Not Found");
注意: 传统的标头一定包含下面三种标头之一,并只能出现一次。 Content-Type: xxxx/yyyy Location: xxxx:yyyy/zzzz Status: nnn xxxxxx 在新的多型标头规格 (Multipart MIME) 方可以出现二次以上。

让使用者下载档案

header("Content-type: application/x-gzip"); 
header("Content-Disposition: attachment; filename=文件名"); 
header("Content-Description: PHP3 Generated Data"); 

以上就介绍了header函数,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn