PHP 网络函数

PHP header() 函数用于发送原始 HTTP 标头。请注意,在发送任何实际输出之前,必须调用 header()

语法

header(header, replace, response_code) 

参数

header必填。 指定标题字符串。有两种特殊情况标头调用:
  • 以字符串"HTTP/"开头(大小写不重要)的标头,用于找出 HTTP 状态代码发送。例如 - header("HTTP/1.1 404 Not Found");
  • "Location:"标头。它不仅会将此标头发送回浏览器,还会向浏览器返回 REDIRECT (302) 状态代码,除非已设置 201 或 3xx 状态代码。例如 - header("location:http://www.yxjc123.com/");
replace可选。 指示标头是否应替换先前的类似标头,或添加第二个相同类型的标头。默认情况下它将替换。但如果设置为 false,则会强制使用同一类型的多个标头。例如:
header('WWW-Authenticate: Negotiate');
header('WWW-Authenticate: NTLM', false); 
response_code可选。 强制 HTTP 响应代码为指定值。请注意,此参数仅在 header 不为空时才有效。

返回值

不返回任何值。

异常

如果未能安排要发送的标头,则会发出 E_WARNING 级别错误。

示例:下载对话框

要提示用户保存发送的数据(例如生成的 PDF 文件),可以使用 Content-Disposition 标头。这用于提供推荐的文件名并强制浏览器显示保存对话框。

<?php
//输出PDF
header('Content-Type: application/pdf');

//它将被称为downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');

//PDF源在original.pdf中
readfile('original.pdf');
?> 

示例:缓存指令

PHP 脚本通常会生成动态内容,而这些内容不得由客户端浏览器或服务器和客户端浏览器之间的任何代理缓存进行缓存。许多代理和客户端可以通过以下方式强制禁用缓存:

<?php
//缓存控制
header("Cache-Control: no-cache, must-revalidate"); 

//过期的日期
header("Expires: Mon, 16 Oct 2017 10:30:00 GMT"); 
?>