PHP header()函式詳解
阿新 • • 發佈:2019-02-03
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報頭是需要返回給客戶端的首要內容。