一、header是什麼?
PHP的header函數用於將HTTP消息頭髮送到客戶端瀏覽器,可以讓瀏覽器執行一些操作,比如重定向、設定緩存等。 header不僅僅是字符串。它是由PHP自動統一合成,然後以HTTP包的形式發送到客戶端的。 header 必須在實際輸出內容之前被調用,即在瀏覽器輸出內容之前。
二、header函數的語法
header 函數有1-3個參數,建議使用兩個參數,第三個很少使用:
void header(string $string[, bool $replace = true[, int $http_response_code]]);
其中,第一個參數為字符串,表示需要發送的HTTP協議頭信息。第二個參數replace的默認值為true,即表示將之前的同名header信息替換掉。如果第二個參數replace的值為true,則會將之前的與該header具有相同名稱的header信息取消。
第三個參數返回的是web服務器的響應狀態碼,比如 404 沒有找到等。如果該參數設置為0,則不會發送狀態碼,還可以跟第一個參數一樣在字符串中直接賦值。
三、header函數的例子
1、重定向
重定向是指讓瀏覽器通過header的Location內容對另一個URL發送請求,這樣就實現了頁面的重定向。
//重定向到baidu.com頁面 header("Location: https://www.baidu.com/");
2、設置緩存
我們可以通過header來控制網頁的緩存時間,以達到減輕服務器負擔、提高頁面響應速度的效果。
//設置緩存30秒 header("Cache-control: public, max-age=30");
3、下載文件
我們可以通過header來控制瀏覽器下載本地的資源。
//下載文件 header('Content-Disposition: attachment; filename="file.gif"'); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . filesize('file.gif')); header('Connection: close'); readfile('file.gif');
4、設置響應狀態碼
我們可以通過header來設置HTTP狀態碼。
//設置404狀態碼 header("HTTP/1.1 404 Not Found");
四、header函數的注意事項
1、必須在瀏覽器輸出內容之前先調用header函數。
2、header函數必須在所有的PHP標記之外調用。
3、header函數不能處理已經被壓縮的頁面內容。
4、header函數不能在輸出文件之後調用(只適用於輸出到瀏覽器的文件)。
五、總結
header函數是PHP中非常重要的一個函數,支持多種協議、多種功能,可以完成多種操作。不過在使用header函數時,也要注意不能濫用,否則有可能造成安全問題。希望以上內容能夠對讀者有所幫助。
原創文章,作者:WSKN,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/141090.html