PHP中Header使用的HTTP协议及常用方法

Posted by: NOTEPAD 2019年6月1日 Leave a comment

<?PHP 
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]); 
};
//200 正常状态
header('HTTP/1.1 200 OK');

// 301 永久重定向,记得在后面要加重定向地址 Location:$url
header('HTTP/1.1 301 Moved Permanently');

// 重定向,其实就是302 暂时重定向
header('Location: http://www.xxxx.com/');

// 设置页面304 没有修改
header('HTTP/1.1 304 Not Modified');

// 显示登录框,
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Basic realm="登录信息"');
echo '显示的信息!';

// 403 禁止访问
header('HTTP/1.1 403 Forbidden');

// 404 错误
header('HTTP/1.1 404 Not Found');

// 500 服务器错误
header('HTTP/1.1 500 Internal Server Error');

// 3秒后重定向指定地址(也就是刷新到新页面与 <meta http-equiv="refresh" content="10;http://www.xxxx.com/ /> 相同)
header('Refresh: 3; url=http://www.xxxx.com/');
echo '10后跳转到http://www.xxxx.com';

// 重写 X-Powered-By 值
header('X-Powered-By: PHP/5.3.0');
header('X-Powered-By: Brain/0.6b');

//设置上下文语言
header('Content-language: en');

// 设置页面最后修改时间(多用于防缓存)
$time = time() - 60; //建议使用filetime函数来设置页面缓存时间
header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT');

// 设置内容长度
header('Content-Length: 39344');

// 设置头文件类型,可以用于流文件或者文件下载
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="example.zip"'); 
header('Content-Transfer-Encoding: binary');
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'); 
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'); 
header('Content-Type: application/zip'); 
header('Content-Type: application/pdf'); 
header('Content-Type: audio/mpeg');
header('Content-Type: application/x-shockwave-flash'); 
//.... 至于Content-Type 的值 可以去查查 w3c 的文档库,那里很丰富
?>