<?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); } }