1. 程式人生 > >PHP header()函式詳解

PHP header()函式詳解

1. 概述

  • header()函式的作用是:傳送一個原始HTTP標頭到客戶端。
  • 頭資訊是使用者看不見的,裡面包含了很多項,包括:伺服器資訊、日期、內容的長度等。
  • 頭資訊主要的作用為:
    • 跳轉:跳轉到指定URL地址。
    • 指定網頁的內容:瀏覽器會根據指定的網頁格式解析檔案。
    • 附件:指定內容為附件,提示瀏覽器需要儲存。

2. 用法

例項1:

// 指定內容為附件
header('Content-Disposition: attachment; filename="downloaded.pdf"');
// 開啟檔案,並輸出
readfile('original.pdf');

例項2:

// 指定內容型別為位元組流,瀏覽器預設下載位元組流資料
header("Content-type:application/octet-stream"); // 指定檔案長度 header("Accept-Ranges:bytes"); header("Accept-Length:" . filesize($file)); //指定內容為附件 header('Content-Disposition:attachment;filename="downloaded.pdf"'); //指定傳輸的編碼方式 header("Content-Transfer-Encoding:binary"); //開啟檔案並輸出 readfile($file);

3. 更多例項

<?
php // ok header('HTTP/1.1 200 OK'); //設定一個404頭: header('HTTP/1.1 404 Not Found'); //設定地址被永久的重定向 header('HTTP/1.1 301 Moved Permanently'); //轉到一個新地址 header('Location: http://www.example.org/'); //檔案延遲轉向: header('Refresh: 10; url=http://www.example.org/'); print 'You will be redirected in 10 seconds'; //當然,也可以使用html語法實現 // <meta http-equiv="refresh" content="10;http://www.example.org/ />
// override X-Powered-By: PHP: header('X-Powered-By: PHP/4.4.0'); header('X-Powered-By: Brain/0.6b'); //文件語言 header('Content-language: en'); //告訴瀏覽器最後一次修改時間 $time = time() - 60; // or filemtime($fn), etc header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT'); //告訴瀏覽器文件內容沒有發生改變 header('HTTP/1.1 304 Not Modified'); //設定內容長度 header('Content-Length: 1234'); //設定為一個下載型別 header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="example.zip"'); header('Content-Transfer-Encoding: binary'); // load the file to send: readfile('example.zip'); // 對當前文件禁用快取 header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate'); header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past header('Pragma: no-cache'); //設定內容型別: header('Content-Type: text/html; charset=iso-8859-1'); header('Content-Type: text/html; charset=utf-8'); header('Content-Type: text/plain'); //純文字格式 header('Content-Type: image/jpeg'); //JPG圖片 header('Content-Type: application/zip'); // ZIP檔案 header('Content-Type: application/pdf'); // PDF檔案 header('Content-Type: audio/mpeg'); // 音訊檔案 header('Content-Type: application/x-shockwave-flash'); //Flash動畫 //顯示登陸對話方塊 header('HTTP/1.1 401 Unauthorized'); header('WWW-Authenticate: Basic realm="Top Secret"'); print 'Text that will be displayed if the user hits cancel or '; print 'enters wrong login data'; ?>

4. 注意

  • PHP向客戶端傳送HTTP報頭之前不能有任何實際的輸出,否則會報錯。即HTTP報頭是需要返回給客戶端的首要內容。

參考資料