PHP header函數有什麼樣的作用?PHP header函數的介紹(附代碼)

來源:互聯網
上載者:User
php header函數有何作用?在php中header函數可以作為兩種特別的頭來發送狀態代碼,可以來替換前面相同類型的頭,也可以強制指定HTTP響應的值;那麼,下面我們就來看看具體的內容。

先看看官方文檔的定義

(PHP 4, PHP 5, PHP 7)

header — 發送原生 HTTP 頭

1 void header ( string $string [, bool $replace = true [, int $http_response_code ]] )

參數:

string

有兩種特別的頭。第一種以"HTTP/"開頭的 (case is not significant),將會被用來計算出將要發送的HTTP狀態代碼。 例如在 Apache 伺服器上用 PHP 指令碼來處理不存在檔案的請求(使用 ErrorDocument 指令), 就會希望指令碼響應了正確的狀態代碼。

1 <?php2 header("HTTP/1.0 404 Not Found");3 ?>

第二種特殊情況是"Location:"的頭資訊。它不僅把報文發送給瀏覽器,而且還將返回給瀏覽器一個 REDIRECT(302)的狀態代碼,除非狀態代碼已經事先被設定為了201或者3xx

1 <?php2 header("Location: http://www.example.com/"); /* Redirect browser */3 4 /* Make sure that code below does not get executed when we redirect. */5 exit;6 ?>

 replace

  • 選擇性參數 replace 表明是否用後面的頭替換前面相同類型的頭。 預設情況下會替換。如果傳入 FALSE,就可以強制使相同的頭資訊並存。例如:

1 <?php2 header('WWW-Authenticate: Negotiate');3 header('WWW-Authenticate: NTLM', false);4 ?>

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"); // 設定臨界時間

詳細例子:

 <?phpheader('HTTP/1.1 200 OK'); // ok 正常訪問header('HTTP/1.1 404 Not Found'); //通知瀏覽器 頁面不存在header('HTTP/1.1 301 Moved Permanently'); //設定地址被永久的重新導向 301header('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'); //jsonheader('Content-type: application/pdf'); //pdfheader('Content-type: text/xml'); //xmlheader('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'); ######?>
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.