php的header的用法詳解

2020-07-16 10:06:23

php header用於向用戶端傳送原始的HTTP報頭,該函數的語法是「header(string,replace,http_response_code)」,其中引數string表示要傳送的報頭字串。

PHP header() 函數

定義和用法

header() 函數向用戶端傳送原始的 HTTP 報頭。

認識到一點很重要,即必須在任何實際的輸出被傳送之前呼叫 header() 函數(在 PHP 4 以及更高的版本中,您可以使用輸出快取來解決此問題):

<html>
<?php
// 結果出錯
// 在呼叫 header() 之前已存在輸出
header('Location: http://www.example.com/');
?>

語法

header(string,replace,http_response_code)

引數

string 必需。規定要傳送的報頭字串。

replace

可選。指示該報頭是否替換之前的報頭,或新增第二個報頭。

預設是 true(替換)。false(允許相同型別的多個報頭)。

http_response_code 可選。把 HTTP 響應程式碼強制為指定的值。(PHP 4 以及更高版本可用)

提示和注釋

注釋:從 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>
...
...

注釋:使用者可能會設定一些選項來更改瀏覽器的預設快取設定。通過傳送上面的報頭,您可以覆蓋任何這些設定,強制瀏覽器不進行快取!

例子 2

提示使用者儲存一個生成的 PDF 檔案(Content-Disposition 報頭用於提供一個推薦的檔名,並強制瀏覽器顯示儲存對話方塊):

<?php
header("Content-type:application/pdf");
// 檔案將被稱為 downloaded.pdf
header("Content-Disposition:attachment;filename='downloaded.pdf'");
// PDF 源在 original.pdf 中
readfile("original.pdf");
?>
<html>
<body>
...
...

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

更多相關知識,請存取PHP中文網

以上就是php的header的用法詳解的詳細內容,更多請關注TW511.COM其它相關文章!