header() 函数向客户端发送原始的 HTTP 报头。
注意,header() 必须在任何实际输出发送前调用
定义如下:
[Plain Text] 纯文本查看 复制代码 void header ( string $string [, bool $replace = true [, int $http_response_code ]] )
其中 $string 是要发送的报头字符串。
$replace 为可选参数,指示该报头是否替换之前的报头,或添加第二个报头。默认是 true(替换)。false(允许相同类型的多个报头)。
$http_response_code 为可选参数,把 HTTP 响应代码强制为指定的值。
示例代码-1:
[PHP] 纯文本查看 复制代码 <?php
// We'll be outputting a PDF
header('Content-type: application/pdf');
// It will be called downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');
// The PDF source is in original.pdf
readfile('original.pdf');
?>
当执行该段代码时,会提示用户保存一个生成的 PDF 文件(Content-Disposition 报头用于提供一个推荐的文件名,并强制浏览器显示保存对话框),该 PDF 文件在下载时默认的名字为 downloaded.pdf,而在服务器上他的名字则为 original.pdf 。:
又如,header() 函数可以用来保证页面的编码。比如查询 MySQL 数据库时得到中文是 utf-8 的编码格式,而浏览器若是没法识别 http header 中的 content-type时,默认按照系统的编码来显示页面,如简体中文系统下浏览器会使用GB2312 或 GBK ,这样一来在显示结果时就会出现乱码,除非手动在浏览器的”编码“里选择”utf-8" 。如果在程序中用了 header() 函数对编码进行了保证,那么浏览器会根据该 HTTP 头选用合适的编码来显示结果内容。比如像下面的代码:
[Plain Text] 纯文本查看 复制代码 header(”Content-type: text/html;charset=utf-8″);
这样做之后,内容显示:
如果不用的话,可能显示的是乱码:
|