header() 函数向客户端发送原始的 HTTP 报头。
认识到一点很重要,即必须在任何实际的输出被发送之前调用 header() 函数(在 PHP 4 以及更高的版本中,您可以使用输出缓存来解决此问题):
<?php header('HTTP/1.1 200 OK'); // ok 正常访问 header('HTTP/1.1 404 Not Found'); //通知浏览器 页面不存在 header('HTTP/1.1 301 Moved Permanently'); //设置地址被永久的重定向 301 header('Location: http://www.ithhc.cn/'); //跳转到一个新的地址 header('Refresh: 10; url=http://www.ithhc.cn/'); //延迟转向 也就是隔几秒跳转 header('X-Powered-By: PHP/6.0.0'); //修改 X-Powered-By信息 header('Content-language: en'); //文档语言 header('Content-Length: 1234'); //设置内容长度 header('Last-Modified: '.gmdate('D, d M Y H:i:s', $time).' GMT'); //告诉浏览器最后一次修改时间 header('HTTP/1.1 304 Not Modified'); //告诉浏览器文档内容没有发生改变 ###内容类型### header('Content-Type: text/html; charset=utf-8'); //网页编码 header('Content-Type: text/plain'); //纯文本格式 header('Content-Type: image/jpeg'); //JPG、JPEG header('Content-Type: application/zip'); // ZIP文件 header('Content-Type: application/pdf'); // PDF文件 header('Content-Type: audio/mpeg'); // 音频文件 header('Content-type: text/css'); //css文件 header('Content-type: text/javascript'); //js文件 header('Content-type: application/json'); //json header('Content-type: application/pdf'); //pdf header('Content-type: text/xml'); //xml header('Content-Type: application/x-shockw**e-flash'); //Flash动画 ###### ###声明一个下载的文件### header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="ITblog.zip"'); header('Content-Transfer-Encoding: binary'); readfile('test.zip'); ###### ###对当前文档禁用缓存### header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate'); header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); ###### ###显示一个需要验证的登陆对话框### header('HTTP/1.1 401 Unauthorized'); header('WWW-Authenticate: Basic realm="Top Secret"'); ###### ###声明一个需要下载的xls文件### header('Content-Disposition: attachment; filename=ithhc.xlsx'); header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Length: '.filesize('./test.xls')); header('Content-Transfer-Encoding: binary'); header('Cache-Control: must-revalidate'); header('Pragma: public'); readfile('./test.xls'); ###### ?>
PHP header 的几种用法,你知道几种?
1. 跳转页面
header('Location:'.$url); //Location和":"之间无空格。
2. 声明content-type
header('content-type:text/html;charset=utf-8');
3. 返回response状态码
header('HTTP/1.1 404 Not Found');
4. 在某个时间后执行跳转
header('Refresh: 10; url=http://www.baidu.com/'); //10s后跳转。
5. 控制浏览器缓存
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
6. 执行http验证
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Basic realm="Top Secret"');
7. 执行下载操作
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')); //设置内容长度
常用用的header状态值,记录下来以免忘记
<?php//200 正常状态header('HTTP/1.1 200 OK');// 301 永久重定向,记得在后面要加重定向地址 Location:$urlheader('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 的文档库,那里很丰富?>
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛