這篇文章主要給大家介紹PHP header函數的幾大作用,希望能夠對大家有所幫助。
推薦教學:PHP視訊教學
先看看官方文件的定義
(PHP 4, PHP 5, PHP 7)
header — 傳送原生 HTTP 頭
void header ( string $string [, bool $replace = true [, int $http_response_code ]] )
引數:
string
有兩種特別的頭。第一種以"HTTP/"開頭的 (case is not significant),將會被用來計算出將要傳送的HTTP狀態碼。 例如在 Apache 伺服器上用 PHP 指令碼來處理不存在檔案的請求(使用 ErrorDocument 指令), 就會希望指令碼響應了正確的狀態碼。
<?php header("HTTP/1.0 404 Not Found"); ?>
第二種特殊情況是"Location:"的頭資訊。它不僅把報文傳送給瀏覽器,而且還將返回給瀏覽器一個 REDIRECT(302)的狀態碼,除非狀態碼已經事先被設定為了201或者3xx。
<?php header("Location: http://www.example.com/"); /* Redirect browser */ /* Make sure that code below does not get executed when we redirect. */ exit; ?>
replace
可選引數 replace 表明是否用後面的頭替換前面相同型別的頭。 預設情況下會替換。如果傳入 FALSE,就可以強制使相同的頭資訊並存。例如:
<?php header('WWW-Authenticate: Negotiate'); header('WWW-Authenticate: NTLM', false); ?>
http_response_code
強制指定HTTP響應的值。注意,這個引數只有在報文字串(string)不為空的情況下才有效。
header函數的常見用處有以下幾點:
1、重定向
header('Location: http://www.example.com/');
2、指定內容:
header('Content-type: application/pdf');
3、附件:
header('Content-type: application/pdf');
//指定內容為附件,指定下載顯示的名字
header('Content-Disposition: attachment; filename="downloaded.pdf"');
//開啟檔案,並輸出
readfile('original.pdf');
以上程式碼可以在瀏覽器產生檔案對話方塊的效果
4、讓使用者獲取最新的資料和資料而不是快取
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // 設定臨界時間
<?php header('HTTP/1.1 200 OK'); // ok 正常存取 header('HTTP/1.1 404 Not Found'); //通知瀏覽器 頁面不存在 header('HTTP/1.1 301 Moved Permanently'); //設定地址被永久的重定向 301 header('Location: http://www.ithhc.cn/'); //跳轉到一個新的地址 header('Refresh: 10; url=http://www.ithhc.cn/'); //延遲轉向 也就是隔幾秒跳轉 header('X-Powered-By: PHP/6.0.0'); //修改 X-Powered-By資訊 header('Content-language: en'); //文件語言 header('Content-Length: 1234'); //設定內容長度 header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT'); //告訴瀏覽器最後一次修改時間 header('HTTP/1.1 304 Not Modified'); //告訴瀏覽器文件內容沒有發生改變 ###內容型別### header('Content-Type: text/html; charset=utf-8'); //網頁編碼 header('Content-Type: text/plain'); //純文字格式 header('Content-Type: image/jpeg'); //JPG、JPEG header('Content-Type: application/zip'); // ZIP檔案 header('Content-Type: application/pdf'); // PDF檔案 header('Content-Type: audio/mpeg'); // 音訊檔 header('Content-type: text/css'); //css檔案 header('Content-type: text/javascript'); //js檔案 header('Content-type: application/json'); //json header('Content-type: application/pdf'); //pdf header('Content-type: text/xml'); //xml header('Content-Type: application/x-shockw**e-flash'); //Flash動畫 ###### ###宣告一個下載的檔案### header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="ITblog.zip"'); header('Content-Transfer-Encoding: binary'); readfile('test.zip'); ###### ###對當前文件禁用快取### header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate'); header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); ###### ###顯示一個需要驗證的登陸對話方塊### header('HTTP/1.1 401 Unauthorized'); header('WWW-Authenticate: Basic realm="Top Secret"'); ###### ###宣告一個需要下載的xls檔案### header('Content-Disposition: attachment; filename=ithhc.xlsx'); header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Length: '.filesize('./test.xls')); header('Content-Transfer-Encoding: binary'); header('Cache-Control: must-revalidate'); header('Pragma: public'); readfile('./test.xls'); ###### ?>
以上就是php header的作用的詳細內容,更多請關注TW511.COM其它相關文章!