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

时间:2024-05-20 13:45:52

 前言

 通常我们在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 ]] )

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

 用法

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函数常用的方法归纳和总结,关于跨域问题,可参考以下文章详细了解: