您的位置:首页 > 编程语言 > PHP开发

【PHP基础知识】——Header()函数

2017-07-07 16:42 489 查看

 前言

 通常我们在PHP文件的入口都会或多或少地设置header函数,或许有些人知道它的作用,有些人只是用来重定向或者设置编码格式。  这里我就来归纳总结一下header函数的作用。

 概述

 PHP的header函数作用在php4-php7的版本中,用于发送原生的 HTTP 头。

 请注意 header() 必须在任何实际输出之前调用,不管是普通的 HTML 标签,还是文件或 PHP 输出的空行,空格。这是个常见的错  误,在通过include,require,或者其访问其他文件里面的函数的时候,如果在header()被调用之前,其中有空格或者空行。 同样的问  题也存在于单独的 PHP/HTML 文件中。

 参数

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



 用法

1、设置页面编码格式:header("Content-Type: text/html;charset=UTF-8");

2、设置页面无PHP脚本缓存:
header("Cache-Control: no-cache, must-revalidate");

header("Pragma: no-cache");

3、下载对话框:
如果你想提醒用户去保存你发送的数据,例如保存一个生成的PDF文件。你可以使用Content-Disposition的报文信息来提供一个推荐的文件名,并且强制浏览器显示一个文件下载的对话框:
// 读取PDF文件

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

//或者保存PDF文件

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

4、重定向网址:header("Location: http://xxx/"); 

 提示

1、你所有需要输出到浏览器的数据将会一直缓存在服务器端,直到你发送他们,这将造成比较大的资源开销。你可以是用输出缓冲来避开这个问题。你可以通过在脚本里使用ob_start()和ob_end_flush()或者直接在你的php.ini文件里设置output_buffering,也可以直接在服务器的配置文件里设置。

2、header函数同样可以支持跳转https协议,如:
header("Location: https://www.google.com");
如果需要同时兼容http和https,可以这么写:

header("Location: //www.google.com");

3、通过设置header头允许ajax跨域访问:
header('Access-Control-Allow-Origin:http://www.xxx.com');//允许xxx域跨域请求

4、通过设置header头实现跨域访问、设置cookie:
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');

以上即是关于header函数常用的方法归纳和总结,关于跨域问题,可参考以下文章详细了解:
http://www.cppblog.com/fwxjj/archive/2013/12/29/205056.html
http://www.runoob.com/w3cnote/php-ajax-cross-border.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息