本文目錄一覽:
- 1、Php header()函數語法及使用代碼
- 2、php動態頁面設置了header(“Status: 404 Not Found”);但返回200狀態?
- 3、php header 返回狀態嗎
- 4、php gd庫 Header(“Content-type: image/jpg”) 和$img=imagecreatetruecolor(200,200) 的先後順序有關係嗎
Php header()函數語法及使用代碼
語法:
複製代碼
代碼如下:
Void
header(string
$string[,bool
$replace=true
[,
int
$http_response_code)
向客戶端發送原始的HTTP報頭
需注意:
Header函數必須在任何實際的輸出前調用,無論是一般的html標籤、文件中空行,或者來自php。就是在這個函數之前不能有任何形式的輸出。
參數說明:
參數 描述
string 必需。規定要發送的報頭字符串。
replace 可選。指示該報頭是否替換之前的報頭,或添加第二個報頭。
默認是
true(替換)。false(允許相同類型的多個報頭)。
http_response_code 可選。把
HTTP
響應代碼強製為指定的值。(PHP
4
以及更高版本可用)
常見用法實例:
一、發送服務器狀態碼
複製代碼
代碼如下:
header(‘HTTP/1.0
404
Not
Found’);
常用狀態碼:
狀態碼 說明
100-199 表示成功接收請求,要求客戶端繼續提交下一次請求才能完成整個處理過程
200-299 成功接收請求,並已完成整個處理過程,常用200
300-399 未完成請求,客戶端需要進一步細化請求,比如,請求的資源已經移動到一個新的地址,常用302,304
400-499 客戶端請求有誤
常用404
500-599 服務器端出現錯誤,常用500
詳細見:HTTPFTP相應提示信息
二、頁面跳轉
複製代碼
代碼如下:
//
立即跳轉
header(‘Location:
‘);
//
3秒後跳轉
header(‘refresh:3;url=’);
3.設置瀏覽器緩存
強制瀏覽器不進行緩存!
[code]
//header(‘Expires:-1’);
header(‘Expires:
Mon,
26
Jul
1997
05:00:00
GMT’);
header(‘Cache-Control:no-cache,must-revalidate’);
header(‘pragma:no-cache’);
header(‘Last-Modified:
‘.
date(‘D,
j
M
Y
H:i:s
T’)
);
php動態頁面設置了header(“Status: 404 Not Found”);但返回200狀態?
if($id!=1){
header(“HTTP/1.0 404 Not Found”);
header(“Status: 404 Not Found”);
exit();
}
或者
if($id!=1){
header(“HTTP/1.1 404 Not Found”);
header(“Status: 404 Not Found”);
exit();
}
php header 返回狀態嗎
面試時很多人問我這個,記錄一下 200是ok, 404表示頁面未找到.
HTTP協議狀態碼,調用函數時候只需要將$num賦予一個下表中的已知值就直接會返回狀態了。
?PHP
/**
* HTTP Protocol defined status codes
* HTTP協議狀態碼,調用函數時候只需要將$num賦予一個下表中的已知值就直接會返回狀態了。
* @param int $num
*/
function https($num) {
$http = array (
100 = “HTTP/1.1 100 Continue”,
101 = “HTTP/1.1 101 Switching Protocols”,
200 = “HTTP/1.1 200 OK”,
201 = “HTTP/1.1 201 Created”,
202 = “HTTP/1.1 202 Accepted”,
203 = “HTTP/1.1 203 Non-Authoritative Information”,
204 = “HTTP/1.1 204 No Content”,
205 = “HTTP/1.1 205 Reset Content”,
206 = “HTTP/1.1 206 Partial Content”,
300 = “HTTP/1.1 300 Multiple Choices”,
301 = “HTTP/1.1 301 Moved Permanently”,
302 = “HTTP/1.1 302 Found”,
303 = “HTTP/1.1 303 See Other”,
304 = “HTTP/1.1 304 Not Modified”,
305 = “HTTP/1.1 305 Use Proxy”,
307 = “HTTP/1.1 307 Temporary Redirect”,
400 = “HTTP/1.1 400 Bad Request”,
401 = “HTTP/1.1 401 Unauthorized”,
402 = “HTTP/1.1 402 Payment Required”,
403 = “HTTP/1.1 403 Forbidden”,
404 = “HTTP/1.1 404 Not Found”,
405 = “HTTP/1.1 405 Method Not Allowed”,
406 = “HTTP/1.1 406 Not Acceptable”,
407 = “HTTP/1.1 407 Proxy Authentication Required”,
408 = “HTTP/1.1 408 Request Time-out”,
409 = “HTTP/1.1 409 Conflict”,
410 = “HTTP/1.1 410 Gone”,
411 = “HTTP/1.1 411 Length Required”,
412 = “HTTP/1.1 412 Precondition Failed”,
413 = “HTTP/1.1 413 Request Entity Too Large”,
414 = “HTTP/1.1 414 Request-URI Too Large”,
415 = “HTTP/1.1 415 Unsupported Media Type”,
416 = “HTTP/1.1 416 Requested range not satisfiable”,
417 = “HTTP/1.1 417 Expectation Failed”,
500 = “HTTP/1.1 500 Internal Server Error”,
501 = “HTTP/1.1 501 Not Implemented”,
502 = “HTTP/1.1 502 Bad Gateway”,
503 = “HTTP/1.1 503 Service Unavailable”,
504 = “HTTP/1.1 504 Gateway Time-out”
);
header($http[$num]);
}
?
@header(‘HTTP/1.0 404 Not Found’);
php gd庫 Header(“Content-type: image/jpg”) 和$img=imagecreatetruecolor(200,200) 的先後順序有關係嗎
沒有關係
一般header放在imagejpeg或imagepng 前就行,這兩個函數是輸出圖片內容的。header要在所有輸出內容前發送
imagecreatetruecolor這個是創建圖片(在內存中),處理圖片的過程都還在服務器端的代碼中,並沒有輸出。
不過處理過程中要注意錯誤處理,如果header前代碼發生了錯誤,並且錯誤發送到瀏覽器了,那header就發不出去了。不過這個時候代碼也是不成功的,需要修復錯誤了
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/311466.html
微信掃一掃
支付寶掃一掃