PHP header() 函數(shù)

2018-03-28 15:24 更新

PHP header() 函數(shù)


PHP HTTP 參考手冊 完整的 PHP HTTP 參考手冊

定義和用法

header() 函數(shù)向客戶端發(fā)送原始的 HTTP 報(bào)頭。(常用header設(shè)置列表

認(rèn)識(shí)到一點(diǎn)很重要,即必須在任何實(shí)際的輸出被發(fā)送之前調(diào)用 header() 函數(shù)(在 PHP 4 以及更高的版本中,您可以使用輸出緩沖來解決這個(gè)問題):

<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)

參數(shù) 描述
string 必需。規(guī)定要發(fā)送的報(bào)頭字符串。
replace 可選。指示該報(bào)頭是否替換之前的報(bào)頭,或添加第二個(gè)報(bào)頭。默認(rèn)是 TRUE(替換)。FALSE(允許相同類型的多個(gè)報(bào)頭)。
http_response_code 可選。把 HTTP 響應(yīng)代碼強(qiáng)制為指定的值。(PHP 4.3 以及更高版本可用)


提示和注釋

注釋:從 PHP 4.4 之后,該函數(shù)防止一次發(fā)送多個(gè)報(bào)頭。這是對(duì)頭部注入攻擊的保護(hù)措施。


實(shí)例 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>

...
...

注釋:用戶可能會(huì)設(shè)置一些選項(xiàng)來更改瀏覽器的默認(rèn)緩存設(shè)置。通過發(fā)送上面的報(bào)頭,您可以覆蓋任何這些設(shè)置,強(qiáng)制瀏覽器不進(jìn)行緩存!


實(shí)例 2

提示用戶保存一個(gè)生成的 PDF 文件(Content-Disposition 報(bào)頭用于提供一個(gè)推薦的文件名,并強(qiáng)制瀏覽器顯示保存對(duì)話框):

<?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>

...
...

注釋:微軟 IE 5.5 存在一個(gè)阻止以上機(jī)制的 bug。通過升級(jí)為 Service Pack 2 或更高的版本,可以解決該 bug。


PHP HTTP 參考手冊 完整的 PHP HTTP 參考手冊
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)