1、header()函数的作用是:发送一个原始 HTTP 标头[Http Header]到客户端。
header(string,replace,http_response_code) /*string:必需。规定要发送的报头字符串。 replace:可选。指示该报头是否替换之前的报头,或添加第二个报头。 默认是 true(替换)。false(允许相同类型的多个报头)。 http_response_code:可选。把 HTTP 响应代码强制为指定的值。*/
注意:必须在任何实际的输出被发送之前调用 header() 函数。
2、 用法1:跳转页面
header("Location:https://baidu.com"); //正常跳转 header(\'Refresh: 3; url=https://www.baidu.com\'); //3s后跳转 //在header作跳转时,避免发生错误后,代码继续执行,一般加个exit;
用法2:声明content-type(我经常拿来决解乱码)
header(\'content-type:text/html;charset=utf-8\');
用法3:返回响应状态码
header(\'HTTP/1.1 403 Forbidden\');
用法4:执行下载操作(隐藏文件的位置)
header(\'Content-Type: application/octet-stream\'); //设置内容类型 header(\'Content-Disposition: attachment; filename="example.zip"\');//设置MIME用户作为附件 header(\'Content-Transfer-Encoding: binary\'); //设置传输方式 header(\'Content-Length: \'.filesize(\'example.zip\')); //设置内容长度
用法5:控制浏览器缓存
header( \'Expires: Mon, 26 Jul 1997 05:00:00 GMT\' ); //如果服务器上的网页经常变化,就把它设置为-1,表示立即过期 header( \'Last-Modified: \' . gmdate( \'D, d M Y H:i:s\' ) . \' GMT\' ); header( \'Cache-Control: no-store, no-cache, must-revalidate\' ); header( \'Cache-Control: post-check=0, pre-check=0\', false ); header( \'Pragma: no-cache\' );
用法6:
3、更多实例
<?php // ok header(\'HTTP/1.1 200 OK\'); //设置一个404头: header(\'HTTP/1.1 404 Not Found\'); //设置地址被永久的重定向 header(\'HTTP/1.1 301 Moved Permanently\'); //转到一个新地址 header(\'Location: http://www.example.org/\'); //文件延迟转向: header(\'Refresh: 10; url=http://www.example.org/\'); print \'You will be redirected in 10 seconds\'; //当然,也可以使用html语法实现 // <meta http-equiv="refresh" content="10;http://www.example.org/ /> // override X-Powered-By: PHP: header(\'X-Powered-By: PHP/4.4.0\'); header(\'X-Powered-By: Brain/0.6b\'); //文档语言 header(\'Content-language: en\'); //告诉浏览器最后一次修改时间 $time = time() - 60; // or filemtime($fn), etc header(\'Last-Modified: \'.gmdate(\'D, d M Y H:i:s\', $time).\' GMT\'); //告诉浏览器文档内容没有发生改变 header(\'HTTP/1.1 304 Not Modified\'); //设置内容长度 header(\'Content-Length: 1234\'); //设置为一个下载类型 header(\'Content-Type: application/octet-stream\'); header(\'Content-Disposition: attachment; filename="example.zip"\'); header(\'Content-Transfer-Encoding: binary\'); // load the file to send: 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\'); // Date in the past 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\'); //JPG图片 header(\'Content-Type: application/zip\'); // ZIP文件 header(\'Content-Type: application/pdf\'); // PDF文件 header(\'Content-Type: audio/mpeg\'); // 音频文件 header(\'Content-Type: application/x-shockwave-flash\'); //Flash动画 //显示登陆对话框 header(\'HTTP/1.1 401 Unauthorized\'); header(\'WWW-Authenticate: Basic realm="Top Secret"\'); print \'Text that will be displayed if the user hits cancel or \'; print \'enters wrong login data\'; ?>