好!欢迎访问迷津渡口 现在时间是: 天气 °C ~ °C

迷津渡口

越感到迷惑 越接近真理

PHP的header函数范例详解

PHP的header函数是用于服务器向客户端发送原始的HTTP报头的函数,而HTTP报头是服务器以 HTTP 协议传 HTML 资料到浏览器前所送出的字串,与 HTML 文件之间尚需空一行分隔。


请注意 header() 必须在任何实际输出之前调用,不管是普通的 HTML 标签,还是文件或 PHP 输出的空行,空格。这是个常见的错误,在通过include,require,或者其访问其他文件里面的函数的时候,在header()被调用之前,其中也不能有空格或者空行。 同样的问题也存在于单独的 PHP/HTML 文件中。


关于HTTP的资料,可查看RFC2616文档,此文档详细定义介绍了HTTP1.1协议,当然也包含HTTP报头。

感谢翻译大神,小指分享了中文版在百度云盘:下载

函数定义和参数

void header(string $string [,bool $replace=true [,int $http_response_code ]])

参数表

参数描述
string必需。规定要发送的报头字符串。
replace

可选。指示该报头是否替换之前的报头,或添加第二个报头。

默认是 true(替换)。false(允许相同类型的多个报头)。

http_response_code可选。把 HTTP 响应代码强制为指定的值。(PHP 4 以及更高版本可用)

参数详解

string

必选的参数--报头字符串。

有两种特别的头:

第一种以 HTTP/ 开头的,将会被用来计算出将要发送的HTTP状态码。 

例如,通知浏览器,页面不存在,使用404状态码。

<?php
header("HTTP/1.1 404 Not Found");
?>

第二种特殊情况是 Location: 的头信息。

它不仅把报文发送给浏览器,而且在事先未设置状态码为201或者3xx时返回给浏览器一个重定向--REDIRECT(302)的状态码。

<?php
header("Location: http://www.qingzz.cn/"); /* 重定向到http://www.qingzz.cn */

/* 确保在重定向后面接上exit,防止脚本继续往下执行 */
exit;
?>
replace

可选参数 replace 表明是否用后面的头替换前面相同类型的头。 默认情况下会替换。如果传入 FALSE,就可以强制使相同的头信息并存。例如:

<?php
header('WWW-Authenticate: Negotiate');
header('WWW-Authenticate: NTLM', false);
?>
http_response_code

强制指定HTTP响应的值。注意,这个参数只有在报头字符串(string)不为空的情况下才有效。

范例

范例一:重定向的两种方法

/* 方法一: Location */
<?php
header("Location: http://www.qingzz.cn/";);
exit;   //在每个重定向之后都必须加上“exit",避免发生错误后,继续执行。
?>
/* 方法二: Url和Refresh
<?php
header("Refresh:3;Url=http://www.qingzz.cn/");
print('正在加载,请稍等...<br>三秒后自动跳转~~~');
?>

范例二:发送状态码

<?php
// 页面成功加载
header('HTTP/1.1 200 OK');
// 页面不存在
header('HTTP/1.1 404 Not Found');
// 访问地址已被永久重定向
header('HTTP/1.1 301 Moved Permanently');
// 通知浏览器文档内容没有发生改变
header('HTTP/1.1 304 Not Modified');
?>

范例三:文件附件下载

<?php 
$filename = '路径+实际文件名'; 
//文件的类型 
header('Content-type: application/pdf'); 
//下载显示的名字 
header('Content-Disposition: attachment; filename="保存时的文件名.pdf"'); 
readfile("$filename"); 
exit(); 
?>

   一些常用的文件类型设置:

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动画

范例四:配置文件缓存

<?php
// 文件路径和名称
$fn = '/test/foo.png';

// 获取客户端的响应报头
$headers = apache_request_headers(); 

// 测试客户端是否开启缓存并测试文件是否是最新的
if (isset($headers['If-Modified-Since']) && (strtotime($headers['If-Modified-Since']) == filemtime($fn))) {
// 如果文件是最新的则返回304状态码说明文件并未修改
header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($fn)).' GMT', true, 304);
} else {
// 如果图片未缓存或者已过期,则返回200状态码并输出文件
header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($fn)).' GMT', true, 200);
header('Content-Length: '.filesize($fn));
header('Content-Type: image/png');
print file_get_contents($fn);
}
?>

范例五:页面禁用缓存

<?PHP 
header('Expires:Sat,26 Jul 1997 05:00:00 GMT'); 
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'); 
?>

范例六:页面密码保护

<?php
// 自定义用户名和密码
$username='testUser';
$password='testPass';

if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) ||
  ($_SERVER['PHP_AUTH_USER'] != $username) || ($_SERVER['PHP_AUTH_PW'] != $password)) {
  // 未输入用户名和密码或输入不匹配,则输出两个HTTP报头,提示用户输入用户名和密码信息
  // 输出401提示未授权
  header('HTTP/1.1 401 Unauthorized');
  // Basic realm是一个域,所有域名为test的页面登录时用户名和密码一致
  header('WWW-Authenticate: Basic realm="test"');
  // 当用户点击`Cancel`取消输入时输出下面的信息
  exit('Sorry, you must enter a valid user name and password to access this page.');
}
?>

  可以把上面的代码保存为一个文件authorize.php,然后在需要密码保护的页面最前面引用此文件:

<?php
  require_once('authorize.php');
?>

  如此便可以用密码保护页面了~


PHP的header函数非常强大,可以做的事情非常多,上面只是常用的几种。

其他的欢迎各位大神留言补充~

点赞0
   支持一下
挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
 点赞
 签到
 表情
 图片
 代码
提交评论

清空信息
关闭评论
sharonbrown
 sharonbrown 2019-04-19 08:45回复
#173
<a href="http://www.lonmorris.net/nike-air-yeezy-2-rot-october-mistake-butyc">nike air yeezy 2 rot october mistake</a> <a href="http://www.lovegreatdeals.net/nike-air-max-jaune-orange-scarpeg">nike air max jaune orange</a> <a href="http://www.lyricensemble.net/nike-free-5.0-kvinners-oransje-gr%C3%A5-chaussuresb">nike free 5.0 kvinners oransje gr氓</a> <a href="http://www.magascene.net/yeezy-boost-350-verde-kit-butya">yeezy boost 350 verde kit</a> <a href="http://www.mallgame.net/nike-shox-deliver-nero-stealth-options-schuhee">nike shox deliver nero stealth options</a> <a href="http://www.matthewstone.net/nike-free-3.0-dam%C3%A6nd-salg-for-salg-chaussurese">nike free 3.0 dam忙nd salg for salg</a>
sharonbrown http://www.sharonbrown.net/
kleefklimmen
 kleefklimmen 2019-04-18 21:53回复
#172
<a href="http://www.randygageteam.com/air-max-95-bl%C3%A5-and-hvit-obuvi">air max 95 bl氓 and hvit</a> <a href="http://www.newlouisbag.com/kvinner-adidas-zx-850-gr%C3%A5-oransje-obuvk">kvinner adidas zx 850 gr氓 oransje</a> <a href="http://www.thebrandiac.com/nike-internationalist-dove-gr%C3%A5-hvit-obuvi">nike internationalist dove gr氓 hvit</a> <a href="http://www.isisprojectsa.com/2012-air-jordan-7-retro-dark-azul-blanco-oro-zapatosl">2012 air jordan 7 retro dark azul blanco oro</a> <a href="http://www.linnwoodpark.com/nike-stefan-janoski-max-grigio-nero-scarpeh">nike stefan janoski max grigio nero</a> <a href="http://www.perfecthostia.com/nike-hypervenom-2-green-black-shoesk">nike hypervenom 2 green black</a>
kleefklimmen http://www.kleefklimmen.com/
swiftgrocer
 swiftgrocer 2019-04-18 10:36回复
#171
<a href="http://www.sugarforspice.com/nike-lebron-10-low-p%C3%BArpura-zapatosk">nike lebron 10 low p煤rpura</a> <a href="http://www.mybancorphsa.com/adidas-neo-lazy-sky-blue-pink-shoesi">adidas neo lazy sky blue pink</a> <a href="http://www.scopatore.com/herren-nike-air-max-87-sb-wei%C3%9F-gr%C3%BCn-schuhei">herren nike air max 87 sb wei脽 gr眉n</a> <a href="http://www.galacticlogos.com/nike-lebron-ambassador-9-p%C3%BArpura-plata-zapatosp">nike lebron ambassador 9 p煤rpura plata</a> <a href="http://www.ispardmore.com/kvinders-air-jordan-retro-14-bl%C3%A5-lilla-skoi">kvinders air jordan retro 14 bl氓 lilla</a> <a href="http://www.radioramabc.com/nike-flyknit-roshe-run-gr%C3%B8nn-bl%C3%A5-obuvq">nike flyknit roshe run gr酶nn bl氓</a>
swiftgrocer http://www.swiftgrocer.com/
iamsubscribed
 iamsubscribed 2019-04-18 06:17回复
#170
<a href="http://www.alterwina.com/nike-foamposite-carolina-blue-shoesk">nike foamposite carolina blue</a> <a href="http://www.fajarmuda.com/ray-ban-new-wayfarer-non-polarized-sunglassesh">ray ban new wayfarer non polarized</a> <a href="http://www.nohvfx.com/rouge-converse-prix-chaussuresl">rouge converse prix</a> <a href="http://www.prepperdays.com/nike-high-tops-hypervenomx-proximo-indoor-violet-noir-vert-chaussuresl">nike high tops hypervenomx proximo indoor violet noir vert</a> <a href="http://www.xlectures.com/nike-air-max-thea-schwarz-and-wei%C3%9F-billig-schuhej">nike air max thea schwarz and wei脽 billig</a> <a href="http://www.masvidalyoga.com/nike-air-max-2013-lime-gr%C3%BCn-schuhei">nike air max 2013 lime gr眉n</a>
iamsubscribed http://www.iamsubscribed.com/
seoaddress
 seoaddress 2019-04-17 15:07回复
#169
<a href="http://www.rexpousa.com/polo-ralph-lauren-ombr%C2%A8%C2%A6-linen-sport-shirt-poloh">polo ralph lauren ombr篓娄 linen sport shirt</a> <a href="http://www.dalvadesign.com/adidas-predator-absolute-trx-fg-shoesi">adidas predator absolute trx fg</a> <a href="http://www.velvetwifi.com/nike-air-max-1-bianca-grigio-scarpej">nike air max 1 bianca grigio</a> <a href="http://www.sophiarugby.com/dam%C3%A4nner-nike-kd-10-gr%C3%BCn-schuhej">dam盲nner nike kd 10 gr眉n</a> <a href="http://www.thumbglovepro.com/cleveland-cavaliers-new-era-nba-hardwood-classics-snow-dayz-knit-hath">cleveland cavaliers new era nba hardwood classics snow dayz knit</a> <a href="http://www.ceracustica.com/nike-cortez-ultra-noir-and-blanc-chaussuresh">nike cortez ultra noir and blanc</a>
seoaddress http://www.seoaddress.com/
skonya
 skonya 2019-04-16 19:59回复
#168
<a href="http://www.kaliteankara.com/nike-air-pegasus-blue-shoesl">nike air pegasus blue</a> <a href="http://www.bagsbeat.com/polo-ralph-lauren-zip-sweater-poloh">polo ralph lauren zip sweater</a> <a href="http://www.lolalolincoln.com/adidas-neo-leisure-hvid-bl%C3%A5-r%C3%B8d-skok">adidas neo leisure hvid bl氓 r酶d</a> <a href="http://www.buycharboleps.com/adidas-footballe-schuhe-gr%C3%BCn-schuheh">adidas footballe schuhe gr眉n</a> <a href="http://www.androidsmith.com/nike-zoom-clear-out-white-and-black-shoesk">nike zoom clear out white and black</a> <a href="http://www.oheyewear.com/nike-lebron-ambassador-9-sort-r%C3%B8d-hvid-skol">nike lebron ambassador 9 sort r酶d hvid</a>
skonya http://www.skonya.com/
goodmedusa
 goodmedusa 2019-04-16 14:53回复
#167
<a href="http://www.awassessment.com/salomon-frau-speedcross-3-iii-schwarz-rot-schuhek">salomon frau speedcross 3 iii schwarz rot</a> <a href="http://www.websiteopmaat.com/nike-mercurial-superfly-v-ag-pro-grass-gr%C3%B8n-sort-skoi">nike mercurial superfly v ag pro grass gr酶n sort</a> <a href="http://www.lopifitfl.com/nike-kd-trey-v-iii-hommes-blac-blanc-chaussuresh">nike kd trey v iii hommes blac blanc</a> <a href="http://www.aurorefleurs.com/kansas-jayhawks-2-for-28-top-of-the-world-ncaa-teamwork-cap-hatl">kansas jayhawks 2 for 28 top of the world ncaa teamwork cap</a> <a href="http://www.ezedcal.com/adidas-copa-mundial-team-astro-tf-noir-blanc-chaussuresh">adidas copa mundial team astro tf noir blanc</a> <a href="http://www.calsportswear.com/nike-free-run-5.0-mujeres-azul-zapatosk">nike free run 5.0 mujeres azul</a>
[url=http://www.goodmedusa.com/]goodmedusa[/url]
retailnav
 retailnav 2019-04-16 10:06回复
#166
<a href="http://www.uagogo.com/adidas-messi-15.3-fg-rot-schwarz-grass-gr%C3%BCn-schuhej">adidas messi 15.3 fg rot schwarz grass gr眉n</a> <a href="http://www.dannyishere.com/cincinnati-bearcats-top-of-the-world-ncaa-diamonds-snapback-cap-hath">cincinnati bearcats top of the world ncaa diamonds snapback cap</a>
retailnav http://www.retailnav.com/
graciecomm
 graciecomm 2019-04-16 04:56回复
#165
<a href="http://www.goodmedusa.com/nike-lebron-13-negro-p%C3%BArpura-oro-zapatosi">nike lebron 13 negro p煤rpura oro</a> <a href="http://www.murskacorp.com/nike-roshe-sort-and-hvid-pris-skoh">nike roshe sort and hvid pris</a> <a href="http://www.prajansim.com/adidas-superstar-scarpe-da-ginnastica-rosa-scarpei">adidas superstar scarpe da ginnastica rosa</a> <a href="http://www.pokersurga.com/air-jordan-retro-13-low-bianca-nero-grigio-scarpej">air jordan retro 13 low bianca nero grigio</a> <a href="http://www.arkmmj.com/brandon-coleman-16-new-orleans-saints-jersey-nflh">brandon coleman 16 new orleans saints jersey</a> <a href="http://www.butterbroad.com/coach-bag-dinky-toy-coachh">coach bag dinky toy</a>
graciecomm http://www.graciecomm.com/
turamodenovia
 turamodenovia 2019-04-16 03:36回复
#164
<a href="http://www.cmtalks.com/air-jordan-1-alle-sort-low-skoi">air jordan 1 alle sort low</a> <a href="http://www.ianbaaske.com/nike-classic-cortez-gym-rouge-chaussuresh">nike classic cortez gym rouge</a> <a href="http://www.escawinebar.com/phoenix-suns-new-era-nba-city-series-39thirty-cap-hatl">phoenix suns new era nba city series 39thirty cap</a> <a href="http://www.nexcouriers.com/adidas-neo-chaussures-noir-and-orange-chaussuresh">adidas neo chaussures noir and orange</a> <a href="http://www.admitoneuk.com/nike-mercurialx-proximo-ii-p%C3%BArpura-naranja-blanco-zapatosk">nike mercurialx proximo ii p煤rpura naranja blanco</a> <a href="http://www.rizeingilizce.com/mens-nike-kd-9-red-shoesj">mens nike kd 9 red</a>
turamodenovia http://www.turamodenovia.com/
顶部留言底部
 00:00/00:00
我想和你虚度时光 - 花房姑娘(9)
  1. 我想和你虚度时光
  2. 花房姑娘
  3. 恋恋风尘
  4. 我喜爱一切不彻底的事物
  5. 我的心里是满的
  6. Long Way
  7. 给少年的歌
  8. 晴日共剪窗
  9. 天上的月你的脸