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 <?php 2 header("HTTP/1.0 404 Not Found"); 3 ?>
第二種特殊情況是"Location:"的頭訊息。它不只把報文傳送給瀏覽器,也會傳回給瀏覽器一個REDIRECT(302)的狀態碼,除非狀態碼已經事先被設定為了201或3xx。
1 <?php 2 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 <?php 2 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、指定內容:
# 2. header('Content-type: application/pdf');
3、附件:
: application/pdf');
//指定內容為附件,指定下載顯示的名字
header('Content
header('Content -Disposition: attachment; filename="downloaded.pdf"');
//開啟文件,並輸出
### 資料而非快取############ header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1### 㠀 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函數有什麼樣的作用? PHP header函數的介紹(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!