函數header作用:
頁面跳轉
http頭信息
頭信息的作用很多,最主要的有下面幾個:
1、跳轉
當浏覽器接受到頭信息中的 Location: xxxx 後,就會自動跳轉到 xxxx 指向的URL地址,這點有點類似用 js 寫跳轉。但是這個跳轉只有浏覽器知道,不管體內容裡有沒有東西,用戶都看不到。
例:header("Location: http://./");
2、指定網頁的內容
同樣一個XML文件,如果頭信息中指定:Content-type: application/xml 的話,浏覽器會將其按照XML文件格式解析。但是,如果頭信息中是:Content-type: text/xml 的話,浏覽器就會將其看作存文本解析。(浏覽器不是按照擴展名解析文件的)
例:header('Content-type: application/pdf');
3、附件
不知道大家有沒有注意,有些時候在一些網站下載東西,點下載連接以後,結果浏覽器將這個附件當成網頁打開了,裡面顯示的都是亂碼,這個問題也和頭信息有關。有時候浏覽器根據Content-type 來判斷是打開還是保存,這樣有時就會判斷錯誤(主要是網站設計者忘記寫Content-type)。其實,還有一個可以來指定該內容為附件、需要保存,這個就是:Content-Disposition: attachment; filename="xxxxx"
例:header('Content-Disposition: attachment; filename="downloaded.pdf"');
//打開文件,並輸出
readfile('original.pdf');
HTTP協議狀態碼
1×× 保留
2×× 表示請求成功地接收
3×× 為完成請求客戶需進一步細化請求
4×× 客戶錯誤
5×× 服務器錯誤
語法:
header(string,replace,http_response_code)
參數
string:必需。規定要發送的報頭字符串。
replace:可選。指示該報頭是否替換之前的報頭,或添加第二個報頭。默認是 true(替換)。false(允許相同類型的多個報頭)。
http_response_code:可選。把 HTTP 響應代碼強制為指定的值。(PHP 4 以及更高版本可用)
例1:
重定向網頁
<?php
header("Location: http://www.example.com/");
exit;
?>
例2:
強制用戶每次訪問這個頁面時獲取最新資料,而不是使用存在客戶端的緩存。
<?php
//告訴浏覽器此頁面的過期時間(用格林威治時間表示),只要是已經過去的日期即可。
header("Expires:Mon,26 Jul 1970 05:00:00 GMT");
//告訴浏覽器此頁面的最後更新日期(用格林威治時間表示)也就是當天,目的就是強迫浏覽器獲取最新資料
header("Last-Modified:".gmdate("D,d M Y H:i:s")."GMT");
//告訴客戶端浏覽器不使用緩存
header("Cache-Control: no-cache, must-revalidate");