本文目录一览:
- 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就发不出去了。不过这个时候代码也是不成功的,需要修复错误了