最新的Web开发教程
 

PHP header() Function


<完整PHP HTTP参考

定义和用法

header()函数发送一个原始HTTP标头到客户端。

此外还需要注意的重要header()必须在任何实际的输出被发送之前调用(在PHP 4及更高版本,可以使用输出缓存来解决这个问题):

<html>
<?php
// This results in an error.
// The output above is before the header() call
header('Location: http://www.example.com/');
?>

句法

header(string,replace,http_response_code)

参数 描述
string 需要。 指定头字符串发送
replace 可选的。 指示头是否应该取代以前或添加第二个头部。 默认值是true (will replace) 。 FALSE (allows multiple headers of the same type)
http_response_code 可选的。 迫使HTTP响应代码为指定的值(available in PHP 4.3 and higher)

提示和注意

Note:由于PHP 4.4此功能防止多个头在一次要被发送。 这是对头部注入攻击保护。


实施例1

防止页面缓存:

<?php
// Date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");
?>

<html>
<body>

...
...

Note:有迹象表明,用户可以设置来改变浏览器的默认缓存设置选项。 通过发送上述标题,你应该重写任何这些设置和强制浏览器不缓存!


实施例2

让用户被提示保存一个生成的PDF文件(内容处理标头用于提供推荐的文件名,并强制浏览器以显示保存对话框):

<?php
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");
?>

<html>
<body>

...
...

Note:有一个在微软IE 5.5是可以避免这种情况的工作中的错误。 该漏洞可以通过升级到Service Pack 2或更高版本来解决。


<完整PHP HTTP参考