欢迎来到[自学php网] ①群 287460651

主页 > php专栏 > php函数大全 >

PHP header函数使用大全

来源:未知    时间:2018-05-30 23:35 作者:小飞侠

[导读] 先看看官方文档的定义 (PHP 4, PHP 5, PHP 7) header — 发送原生 HTTP 头 1 void header ( string $string [, bool $replace = true [, int $http_response_code ]] ) 参数: string 有两种特别的头。第一种以HTTP/开头的...

先看看官方文档的定义


(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。

<?php
header("Location: http://www.example.com/"); /* Redirect browser */

/* Make sure that code below does not get executed when we redirect. */
exit;
?>

  replace

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


<?php
    header('WWW-Authenticate: Negotiate');
    header('WWW-Authenticate: NTLM', false);
?>

  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 ?>


最新文章

点击排行

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com