您的位置:首页 > 理论基础 > 计算机网络

转 PHP Header常用的HTTP协议函数及方法

2013-02-05 14:31 381 查看
<?PHP
/**
* HTTP Protocol defined status codes
* HTTP协议状态码,调用函数时候只需要将$num赋予一个下表中的已知值就直接会返回状态了。
* @param int $num
*/
function https($num) {
$http = array (
=> "HTTP/1.1 100 Continue",
=> "HTTP/1.1 101 Switching Protocols",
=> "HTTP/1.1 200 OK",
=> "HTTP/1.1 201 Created",
=> "HTTP/1.1 202 Accepted",
=> "HTTP/1.1 203 Non-Authoritative Information",
=> "HTTP/1.1 204 No Content",
=> "HTTP/1.1 205 Reset Content",
=> "HTTP/1.1 206 Partial Content",
=> "HTTP/1.1 300 Multiple Choices",
=> "HTTP/1.1 301 Moved Permanently",
=> "HTTP/1.1 302 Found",
=> "HTTP/1.1 303 See Other",
=> "HTTP/1.1 304 Not Modified",
=> "HTTP/1.1 305 Use Proxy",
=> "HTTP/1.1 307 Temporary Redirect",
=> "HTTP/1.1 400 Bad Request",
=> "HTTP/1.1 401 Unauthorized",
=> "HTTP/1.1 402 Payment Required",
=> "HTTP/1.1 403 Forbidden",
=> "HTTP/1.1 404 Not Found",
=> "HTTP/1.1 405 Method Not Allowed",
=> "HTTP/1.1 406 Not Acceptable",
=> "HTTP/1.1 407 Proxy Authentication Required",
=> "HTTP/1.1 408 Request Time-out",
=> "HTTP/1.1 409 Conflict",
=> "HTTP/1.1 410 Gone",
=> "HTTP/1.1 411 Length Required",
=> "HTTP/1.1 412 Precondition Failed",
=> "HTTP/1.1 413 Request Entity Too Large",
=> "HTTP/1.1 414 Request-URI Too Large",
=> "HTTP/1.1 415 Unsupported Media Type",
=> "HTTP/1.1 416 Requested range not satisfiable",
=> "HTTP/1.1 417 Expectation Failed",
=> "HTTP/1.1 500 Internal Server Error",
=> "HTTP/1.1 501 Not Implemented",
=> "HTTP/1.1 502 Bad Gateway",
=> "HTTP/1.1 503 Service Unavailable",
=> "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.maiyoule.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.maiyoule.com/ /> 相同)
header('Refresh: 3; url=http://www.maiyoule.com/');
echo '10后跳转到http://www.maiyoule.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 的文档库,那里很丰富 ?>


PHP 文件下载代码 收藏

public function downloads($name){
$name_tmp = explode("_",$name);
$type = $name_tmp[0];
$file_time = explode(".",$name_tmp[3]);
$file_time = $file_time[0];
$file_date = date("Y/md",$file_time);
$file_dir = SITE_PATH."/data/uploads/$type/$file_date/";

if (!file_exists($file_dir.$name)){
header("Content-type: text/html; charset=utf-8");
echo "File not found!";
exit;
} else {
$file = fopen($file_dir.$name,"r");
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($file_dir . $name));
Header("Content-Disposition: attachment; filename=".$name);
echo fread($file, filesize($file_dir.$name));
fclose($file);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: