PHP header函数的几大作用

先看看官方文档的定义

(PHP 4, PHP 5, PHP 7)

header — 发送原生 HTTP 头

1 void header ( string $string [, bool $replace = true [, int $http_response_code ]] )

参数:

  string

    有两种特别的头。第一种以"HTTP/"开头的 (case is not significant),将会被用来计算出将要发送的HTTP状态码。 例如在 Apache 服务器上用 PHP 脚本来处理不存在文件的请求(使用 ErrorDocument 指令), 就会希望脚本响应了正确的状态码。

1 <?php
2 header("HTTP/1.0 404 Not Found");
3 ?> 

    第二种特殊情况是"Location:"的头信息。它不仅把报文发送给浏览器,而且还将返回给浏览器一个 REDIRECT(302)的状态码,除非状态码已经事先被设置为了201或者3xx

1 <?php
2 header("Location: http://www.example.com/"); /* Redirect browser */
3
4 /* Make sure that code below does not get executed when we redirect. */
5 exit;
6 ?> 
  replace

 可选参数 replace 表明是否用后面的头替换前面相同类型的头。 默认情况下会替换。如果传入 FALSE,就可以强制使相同的头信息并存。例如:

1 <?php
2 header(‘WWW-Authenticate: Negotiate‘);
3 header(‘WWW-Authenticate: NTLM‘, false);
4 ?> 

  http_response_code

    强制指定HTTP响应的值。注意,这个参数只有在报文字符串(string)不为空的情况下才有效。

header函数的常见用处有以下几点:

  1、重定向

 header(‘Location: http://www.example.com/‘);

  2、指定内容:

    header(‘Content-type: application/pdf‘);

  3、附件:

header(‘Content-type: application/pdf‘);

    //指定内容为附件,指定下载显示的名字

    header(‘Content-Disposition: attachment; filename="downloaded.pdf"‘);

    //打开文件,并输出

    readfile(‘original.pdf‘);

以上代码可以在浏览器产生文件对话框的效果

4、让用户获取最新的资料和数据而不是缓存

    header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
    header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");   // 设置临界时间

详细例子:

 1 <?php
 2 header(‘HTTP/1.1 200 OK‘); // ok 正常访问
 3 header(‘HTTP/1.1 404 Not Found‘); //通知浏览器 页面不存在
 4 header(‘HTTP/1.1 301 Moved Permanently‘); //设置地址被永久的重定向 301
 5 header(‘Location: http://www.ithhc.cn/‘); //跳转到一个新的地址
 6 header(‘Refresh: 10; url=http://www.ithhc.cn/‘); //延迟转向 也就是隔几秒跳转
 7 header(‘X-Powered-By: PHP/6.0.0‘); //修改 X-Powered-By信息
 8 header(‘Content-language: en‘); //文档语言
 9 header(‘Content-Length: 1234‘); //设置内容长度
10 header(‘Last-Modified: ‘.gmdate(‘D, d M Y H:i:s‘, $time).‘ GMT‘); //告诉浏览器最后一次修改时间
11 header(‘HTTP/1.1 304 Not Modified‘); //告诉浏览器文档内容没有发生改变
12
13 ###内容类型###
14 header(‘Content-Type: text/html; charset=utf-8‘); //网页编码
15 header(‘Content-Type: text/plain‘); //纯文本格式
16 header(‘Content-Type: image/jpeg‘); //JPG、JPEG
17 header(‘Content-Type: application/zip‘); // ZIP文件
18 header(‘Content-Type: application/pdf‘); // PDF文件
19 header(‘Content-Type: audio/mpeg‘); // 音频文件
20 header(‘Content-type: text/css‘); //css文件
21 header(‘Content-type: text/javascript‘); //js文件
22 header(‘Content-type: application/json‘); //json
23 header(‘Content-type: application/pdf‘); //pdf
24 header(‘Content-type: text/xml‘); //xml
25 header(‘Content-Type: application/x-shockw**e-flash‘); //Flash动画
26
27 ######
28
29 ###声明一个下载的文件###
30 header(‘Content-Type: application/octet-stream‘);
31 header(‘Content-Disposition: attachment; filename="ITblog.zip"‘);
32 header(‘Content-Transfer-Encoding: binary‘);
33 readfile(‘test.zip‘);
34 ######
35
36 ###对当前文档禁用缓存###
37 header(‘Cache-Control: no-cache, no-store, max-age=0, must-revalidate‘);
38 header(‘Expires: Mon, 26 Jul 1997 05:00:00 GMT‘);
39 ######
40
41 ###显示一个需要验证的登陆对话框###
42 header(‘HTTP/1.1 401 Unauthorized‘);
43 header(‘WWW-Authenticate: Basic realm="Top Secret"‘);
44 ######
45
46
47 ###声明一个需要下载的xls文件###
48 header(‘Content-Disposition: attachment; filename=ithhc.xlsx‘);
49 header(‘Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet‘);
50 header(‘Content-Length: ‘.filesize(‘./test.xls‘));
51 header(‘Content-Transfer-Encoding: binary‘);
52 header(‘Cache-Control: must-revalidate‘);
53 header(‘Pragma: public‘);
54 readfile(‘./test.xls‘);
55 ######
56 ?>
时间: 2024-10-13 07:07:31

PHP header函数的几大作用的相关文章

http标头详解/即php中header函数应用解释

HTTP协议header标头详解 分类: Webkit Web Php C/C++ 2012-10-31 11:19 14366人阅读 评论(0) 收藏 举报 本文根据RFC2616(HTTP/1.1规范),参考 http://www.w3.org/Protocols/rfc2068/rfc2068 http://www.w3.org/Protocols/rfc2616/rfc2616 http://www.ietf.org/rfc/rfc3229.txt 通常HTTP消息包括客户机向服务器的请

header函数在php中

PHP 中 header()函数的作用是给客户端发送头信息.什么是头信息?这里只作简单解释,详细的自己看http协议.在 HTTP协议中,服务器端的回答(response)内容包括两部分:头信息(header) 和 体内容,这里的头信息不是HTML中的<head></head>部分,同样,体内容也不是<BODY>< /BODY>.头信息是用户看不见的,里面包含了很多项,包括:服务器信息.日期.内容的长度等.而体内容就是整个HTML,也就是你所能看见的全 部东

header()函数

header()前不能有任何代码,即使有,也得用一个函数或关键字,让它不执行,否则header()函数无法执行 这个函数说白了是个跳转函数 跳转到指定页面(站内的或指定网址) 例: header('Location:http://www.baidu.com/'); 有几个小问题 1.Location   第一个字母大写 2.网址前必须加"http://",后面必须加"/" 3.Location:http://www.baidu.com/  前后必须加单引号 4.最后

C语言中malloc()和free()函数的具体作用

本文想就C语言中malloc()和free()函数的具体作用做出一些说明,这些细节大家在使用过程中很有可能会忽略. 在C语言中要动态的释放内存,就必然要用到指针,将动态分配获得的空间地址赋值给指针.C语言中动态分配内存的函数为malloc(), 在用完后,要及时调用free()函数释放.理论上,这样是安全的,但其实这样是不安全的,因为free()函数仅仅是告诉操作系统,这块空间我不用了,操作系统收回空间.而指向这块空间的指针并没有改变,它的值仍然指向这块空间.这样,我就可以继续使用该指针操作内存

php header函数的详解

header函数在php中是发送一些头部信息的, 我们可以直接使用它来做301跳转等,下面我来总结关于header函数用法与一些常用见问题解决方法. 发送一个原始 HTTP 标头[Http Header]到客户端.标头 (header) 是服务器以 HTTP 协义传 HTML 资料到浏览器前所送出的字串,在标头与 HTML 文件之间尚需空一行分隔. 1.重定向. Header("Location: http://blog.anepx.com"); exit; //在每个重定向之后都必须

php中header函数后是否应该有exit

通常有一下三种:  代码如下 复制代码 Location: xxxx:yyyy/zzzz Content-Type: xxxx/yyyy Status: nnn xxxxxx 常用实例 1.实现重定向(状态码302)  代码如下 复制代码 <?phpheader(”Location: http://www.111cn.net”);exit;?> 例子  代码如下 复制代码 <?phpheader("Location:http://www.111cn.net/");//

header函数使用

header('HTTP/1.1 200 OK'); //设置一个404头: header('HTTP/1.1 404 Not Found'); //设置地址被永久的重定向 header('HTTP/1.1 301 Moved Permanently'); //转到一个新地址 header('Location: http://www.example.org/'); //文件延迟转向: header('Refresh: 10; url=http://www.example.org/'); prin

PHP 使用header函数设置HTTP头的示例方法 表头 (xlsx下载)

转载 http://justcoding.iteye.com/blog/601117/ //定义编码header( 'Content-Type:text/html;charset=utf-8 '); //Atomheader('Content-type: application/atom+xml'); //CSSheader('Content-type: text/css'); //Javascriptheader('Content-type: text/javascript'); //JPEG

JAVA 注解的几大作用及使用方法详解

JAVA 注解的几大作用及使用方法详解 (2013-01-22 15:13:04) 转载▼ 标签: java 注解 杂谈 分类: Java java 注解,从名字上看是注释,解释.但功能却不仅仅是注释那么简单.注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后 某个时刻方便地使用这些数据(通过 解析注解 来使用这些数据),常见的作用有以下几种: 1.生成文档.这是最常见的,也是java 最早提供的注解.常用的有@see @param @return 等: