PHP 中 header()函数的作用是给客户端发送头信息。
什么是头信息?
这里只作简单解释,详细的自己看http协议。在 HTTP协议中,服务器端的回答(response)内容包括两部分:头信息(header) 和 体内容,这里的头信息不是HTML中的<head></head>部分,同样,体内容也不是<BODY>< /BODY>。头信息是用户看不见的,里面包含了很多项,包括:服务器信息、日期、内容的长度等。而体内容就是整个HTML,也就是你所能看见的全 部东西。头信息有什么用呢?
头信息的作用很多,最主要的有下面几个:1、跳转:当浏览器接受到头信息中的 Location: xxxx 后,就会自动跳转到 xxxx 指向的URL地址,这点有点类似用 js 写跳转。但是这个跳转只有浏览器知道,不管体内容里有没有东西,用户都看不到。
2、指定网页的内容: 同样一个XML文件,如果头信息中指定:Content-type: application/xml 的话,浏览器会将其按照XML文件格式解析。但是,如果头信息中是:Content-type: text/xml 的话,浏览器就会将其看作存文本解析。(浏览器不是按照扩展名解析文件的)3、附件: 不知道大家有没有注意,有些时候在一些网站下载东西,点下载连接以后,结果浏览器将这个附件当成网页打开 了,里面显示的都是乱码,这个问题也和头信息有关。有时候浏览器根据Content-type 来判断是打开还是保存,这样有时就会判断错误(主要是网站设计者忘记写Content-type)。其实,还有一个可以来指定该内容为附件、需要保存,这 个就是:Content-Disposition: attachment; filename="xxxxx"3、附件:
// 指定内容为附件header('Content-Disposition: attachment; filename="downloaded.pdf"');// 打开文件,并输出readfile('original.pdf');最 后要提醒大家注意一点,所有头信息都必须在体内容之前,如果一旦有任何输出了的话,header函数写的 头信息就没用了。比如,在文件最开头的<?php 处,如果前面有空格或者有空行,那header函数就没用了(其实可以通过设置:output_buffer来解决,anyway),为什么这样,可以看 看HTTP协议,很简单。
定义和用法
header() 函数向客户端发送原始的 HTTP 报头。
认识到一点很重要,即必须在任何实际的输出被发送之前调用 header() 函数(在 PHP 4 以及更高的版本中,您可以使用输出缓存来解决此问题):
<html>
<?php
// 结果出错
// 在调用 header() 之前已存在输出
header('Location: http://www.example.com/');
?>
语法
header(string,replace,http_response_code)
参数 | 描述 |
---|---|
string | 必需。规定要发送的报头字符串。 |
replace |
可选。指示该报头是否替换之前的报头,或添加第二个报头。 默认是 true(替换)。false(允许相同类型的多个报头)。 |
http_response_code | 可选。把 HTTP 响应代码强制为指定的值。(PHP 4 以及更高版本可用) |
提示和注释
注释:从 PHP 4.4 之后,该函数防止一次发送多个报头。这是对头部注入攻击的保护措施。
例子
例子 1
......
注释:用户可能会设置一些选项来更改浏览器的默认缓存设置。通过发送上面的报头,您可以覆盖任何这些设置,强制浏览器不进行缓存!
例子 2
提示用户保存一个生成的 PDF 文件(Content-Disposition 报头用于提供一个推荐的文件名,并强制浏览器显示保存对话框):
<?php
header("Content-type:application/pdf");
// 文件将被称为 downloaded.pdf
header("Content-Disposition:attachment;filename='downloaded.pdf'");
// PDF 源在 original.pdf 中
readfile("original.pdf");
?>
<html>
<body>
<?php
header('Content-type: application/image/pjpeg');//输出的类型header('Content-Disposition: attachment; filename="downloaded.jpg"'); //下载显示的名字,注意格式readfile('my.jpg');// 并将这个文件以前面header发送信息设定的类型输出,从而会弹出一个下载框// 就是把服务器上的my.jpg下载下来,下载显示和保存的名字默认是downloaded.jpg?> 附带文档类型及服务器响应类别一共两个版本.文档类型 和 服务器响应HTTP的类型上面的这个可以在上传文件的类型中对应上.下面的差了点.(原文下面的是用来写在文件头上的.来确定该文件是什么类型.) 'chm'=>'application/octet-stream', 'ppt'=>'application/vnd.ms-powerpoint', 'xls'=>'application/vnd.ms-excel', 'doc'=>'application/msword', 'exe'=>'application/octet-stream', 'rar'=>'application/octet-stream', 'js'=>"javascrīpt/js", 'css'=>"text/css", 'hqx'=>"application/mac-binhex40", 'bin'=>"application/octet-stream", 'oda'=>"application/oda", 'pdf'=>"application/pdf", 'ai'=>"application/postsrcipt", 'eps'=>"application/postsrcipt", 'es'=>"application/postsrcipt", 'rtf'=>"application/rtf", 'mif'=>"application/x-mif", 'csh'=>"application/x-csh", 'dvi'=>"application/x-dvi", 'hdf'=>"application/x-hdf", 'nc'=>"application/x-netcdf", 'cdf'=>"application/x-netcdf", 'latex'=>"application/x-latex", 'ts'=>"application/x-troll-ts", 'src'=>"application/x-wais-source", 'zip'=>"application/zip", 'bcpio'=>"application/x-bcpio", 'cpio'=>"application/x-cpio", 'gtar'=>"application/x-gtar", 'shar'=>"application/x-shar", 'sv4cpio'=>"application/x-sv4cpio", 'sv4crc'=>"application/x-sv4crc", 'tar'=>"application/x-tar", 'ustar'=>"application/x-ustar", 'man'=>"application/x-troff-man", 'sh'=>"application/x-sh", 'tcl'=>"application/x-tcl", 'tex'=>"application/x-tex", 'texi'=>"application/x-texinfo", 'texinfo'=>"application/x-texinfo", 't'=>"application/x-troff", 'tr'=>"application/x-troff", 'roff'=>"application/x-troff", 'shar'=>"application/x-shar", 'me'=>"application/x-troll-me", 'ts'=>"application/x-troll-ts", 'gif'=>"image/gif", 'jpeg'=>"image/pjpeg", 'jpg'=>"image/pjpeg", 'jpe'=>"image/pjpeg", 'ras'=>"image/x-cmu-raster", 'pbm'=>"image/x-portable-bitmap", 'ppm'=>"image/x-portable-pixmap", 'xbm'=>"image/x-xbitmap", 'xwd'=>"image/x-xwindowdump", 'ief'=>"image/ief", 'tif'=>"image/tiff", 'tiff'=>"image/tiff", 'pnm'=>"image/x-portable-anymap", 'pgm'=>"image/x-portable-graymap", 'rgb'=>"image/x-rgb", 'xpm'=>"image/x-xpixmap", 'txt'=>"text/plain", 'c'=>"text/plain", 'cc'=>"text/plain", 'h'=>"text/plain", 'html'=>"text/html", 'htm'=>"text/html", 'htl'=>"text/html", 'rtx'=>"text/richtext", 'etx'=>"text/x-setext", 'tsv'=>"text/tab-separated-values", 'mpeg'=>"video/mpeg", 'mpg'=>"video/mpeg", 'mpe'=>"video/mpeg", 'avi'=>"video/x-msvideo", 'qt'=>"video/quicktime", 'mov'=>"video/quicktime", 'moov'=>"video/quicktime", 'movie'=>"video/x-sgi-movie", 'au'=>"audio/basic", 'snd'=>"audio/basic", 'wav'=>"audio/x-wav", 'aif'=>"audio/x-aiff", 'aiff'=>"audio/x-aiff", 'aifc'=>"audio/x-aiff", 'swf'=>"application/x-shockwave-flash" 'myz'=>"application/myz"".*"="application/octet-stream"".001"="application/x-001"".301"="application/x-301"".323"="text/h323"".906"="application/x-906"".907"="drawing/907"".a11"="application/x-a11"".acp"="audio/x-mei-aac"".ai"="application/postscript"".aif"="audio/aiff"".aifc"="audio/aiff"".aiff"="audio/aiff"".anv"="application/x-anv"".asa"="text/asa"".asf"="video/x-ms-asf"".asp"="text/asp"".asx"="video/x-ms-asf"".au"="audio/basic"".avi"="video/avi"".awf"="application/vnd.adobe.workflow"".biz"="text/xml"".bmp"="application/x-bmp"".bot"="application/x-bot"".c4t"="application/x-c4t"".c90"="application/x-c90"".cal"="application/x-cals"".cat"="application/vnd.ms-pki.seccat"".cdf"="application/x-netcdf"".cdr"="application/x-cdr"".cel"="application/x-cel"".cer"="application/x-x509-ca-cert"".cg4"="application/x-g4"".cgm"="application/x-cgm"".cit"="application/x-cit"".class"="java/*"".cml"="text/xml"".cmp"="application/x-cmp"".cmx"="application/x-cmx"".cot"="application/x-cot"".crl"="application/pkix-crl"".crt"="application/x-x509-ca-cert"".csi"="application/x-csi"".css"="text/css"".cut"="application/x-cut"".dbf"="application/x-dbf"".dbm"="application/x-dbm"".dbx"="application/x-dbx"".dcd"="text/xml"".dcx"="application/x-dcx"".der"="application/x-x509-ca-cert"".dgn"="application/x-dgn"".dib"="application/x-dib"".dll"="application/x-msdownload"".doc"="application/msword"".dot"="application/msword"".drw"="application/x-drw"".dtd"="text/xml"".dwf"="Model/vnd.dwf"".dwf"="application/x-dwf"".dwg"="application/x-dwg"".dxb"="application/x-dxb"".dxf"="application/x-dxf"".edn"="application/vnd.adobe.edn"".emf"="application/x-emf"".eml"="message/rfc822"".ent"="text/xml"".epi"="application/x-epi"".eps"="application/x-ps"".eps"="application/postscript"".etd"="application/x-ebx"".exe"="application/x-msdownload"".fax"="image/fax"".fdf"="application/vnd.fdf"".fif"="application/fractals"".fo"="text/xml"".frm"="application/x-frm"".g4"="application/x-g4"".gbr"="application/x-gbr"".gcd"="application/x-gcd"".gif"="image/gif"".gl2"="application/x-gl2"".gp4"="application/x-gp4"".hgl"="application/x-hgl"".hmr"="application/x-hmr"".hpg"="application/x-hpgl"".hpl"="application/x-hpl"".hqx"="application/mac-binhex40"".hrf"="application/x-hrf"".hta"="application/hta"".htc"="text/x-component"".htm"="text/html"".html"="text/html"".htt"="text/webviewhtml"".htx"="text/html"".icb"="application/x-icb"".ico"="image/x-icon"".ico"="application/x-ico"".iff"="application/x-iff"".ig4"="application/x-g4"".igs"="application/x-igs"".iii"="application/x-iphone"".img"="application/x-img"".ins"="application/x-internet-signup"".isp"="application/x-internet-signup"".IVF"="video/x-ivf"".java"="java/*"".jfif"="image/jpeg"".jpe"="image/jpeg"".jpe"="application/x-jpe"".jpeg"="image/jpeg"".jpg"="image/jpeg"".jpg"="application/x-jpg"".js"="application/x-javascript"".jsp"="text/html"".la1"="audio/x-liquid-file"".lar"="application/x-laplayer-reg"".latex"="application/x-latex"".lavs"="audio/x-liquid-secure"".lbm"="application/x-lbm"".lmsff"="audio/x-la-lms"".ls"="application/x-javascript"".ltr"="application/x-ltr"".m1v"="video/x-mpeg"".m2v"="video/x-mpeg"".m3u"="audio/mpegurl"".m4e"="video/mpeg4"".mac"="application/x-mac"".man"="application/x-troff-man"".math"="text/xml"".mdb"="application/msaccess"".mdb"="application/x-mdb"".mfp"="application/x-shockwave-flash"".mht"="message/rfc822"".mhtml"="message/rfc822"".mi"="application/x-mi"".mid"="audio/mid"".midi"="audio/mid"".mil"="application/x-mil"".mml"="text/xml"".mnd"="audio/x-musicnet-download"".mns"="audio/x-musicnet-stream"".mocha"="application/x-javascript"".movie"="video/x-sgi-movie"".mp1"="audio/mp1"".mp2"="audio/mp2"".mp2v"="video/mpeg"".mp3"="audio/mp3"".mp4"="video/mpeg4"".mpa"="video/x-mpg"".mpd"="application/vnd.ms-project"".mpe"="video/x-mpeg"".mpeg"="video/mpg"".mpg"="video/mpg"".mpga"="audio/rn-mpeg"".mpp"="application/vnd.ms-project"".mps"="video/x-mpeg"".mpt"="application/vnd.ms-project"".mpv"="video/mpg"".mpv2"="video/mpeg"".mpw"="application/vnd.ms-project"".mpx"="application/vnd.ms-project"".mtx"="text/xml"".mxp"="application/x-mmxp"".net"="image/pnetvue"".nrf"="application/x-nrf"".nws"="message/rfc822"".odc"="text/x-ms-odc"".out"="application/x-out"".p10"="application/pkcs10"".p12"="application/x-pkcs12"".p7b"="application/x-pkcs7-certificates"".p7c"="application/pkcs7-mime"".p7m"="application/pkcs7-mime"".p7r"="application/x-pkcs7-certreqresp"".p7s"="application/pkcs7-signature"".pc5"="application/x-pc5"".pci"="application/x-pci"".pcl"="application/x-pcl"".pcx"="application/x-pcx"".pdf"="application/pdf"".pdf"="application/pdf"".pdx"="application/vnd.adobe.pdx"".pfx"="application/x-pkcs12"".pgl"="application/x-pgl"".pic"="application/x-pic"".pko"="application/vnd.ms-pki.pko"".pl"="application/x-perl"".plg"="text/html"".pls"="audio/scpls"".plt"="application/x-plt"".png"="image/png"".png"="application/x-png"".pot"="application/vnd.ms-powerpoint"".ppa"="application/vnd.ms-powerpoint"".ppm"="application/x-ppm"".pps"="application/vnd.ms-powerpoint"".ppt"="application/vnd.ms-powerpoint"".ppt"="application/x-ppt"".pr"="application/x-pr"".prf"="application/pics-rules"".prn"="application/x-prn"".prt"="application/x-prt"".ps"="application/x-ps"".ps"="application/postscript"".ptn"="application/x-ptn"".pwz"="application/vnd.ms-powerpoint"".r3t"="text/vnd.rn-realtext3d"".ra"="audio/vnd.rn-realaudio"".ram"="audio/x-pn-realaudio"".ras"="application/x-ras"".rat"="application/rat-file"".rdf"="text/xml"".rec"="application/vnd.rn-recording"".red"="application/x-red"".rgb"="application/x-rgb"".rjs"="application/vnd.rn-realsystem-rjs"".rjt"="application/vnd.rn-realsystem-rjt"".rlc"="application/x-rlc"".rle"="application/x-rle"".rm"="application/vnd.rn-realmedia"".rmf"="application/vnd.adobe.rmf"".rmi"="audio/mid"".rmj"="application/vnd.rn-realsystem-rmj"".rmm"="audio/x-pn-realaudio"".rmp"="application/vnd.rn-rn_music_package"".rms"="application/vnd.rn-realmedia-secure"".rmvb"="application/vnd.rn-realmedia-vbr"".rmx"="application/vnd.rn-realsystem-rmx"".rnx"="application/vnd.rn-realplayer"".rp"="image/vnd.rn-realpix"".rpm"="audio/x-pn-realaudio-plugin"".rsml"="application/vnd.rn-rsml"".rt"="text/vnd.rn-realtext"".rtf"="application/msword"".rtf"="application/x-rtf"".rv"="video/vnd.rn-realvideo"".sam"="application/x-sam"".sat"="application/x-sat"".sdp"="application/sdp"".sdw"="application/x-sdw"".sit"="application/x-stuffit"".slb"="application/x-slb"".sld"="application/x-sld"".slk"="drawing/x-slk"".smi"="application/smil"".smil"="application/smil"".smk"="application/x-smk"".snd"="audio/basic"".sol"="text/plain"".sor"="text/plain"".spc"="application/x-pkcs7-certificates"".spl"="application/futuresplash"".spp"="text/xml"".ssm"="application/streamingmedia"".sst"="application/vnd.ms-pki.certstore"".stl"="application/vnd.ms-pki.stl"".stm"="text/html"".sty"="application/x-sty"".svg"="text/xml"".swf"="application/x-shockwave-flash"".tdf"="application/x-tdf"".tg4"="application/x-tg4"".tga"="application/x-tga"".tif"="image/tiff"".tif"="application/x-tif"".tiff"="image/tiff"".tld"="text/xml"".top"="drawing/x-top"".torrent"="application/x-bittorrent"".tsd"="text/xml"".txt"="text/plain"".uin"="application/x-icq"".uls"="text/iuls"".vcf"="text/x-vcard"".vda"="application/x-vda"".vdx"="application/vnd.visio"".vml"="text/xml"".vpg"="application/x-vpeg005"".vsd"="application/vnd.visio"".vsd"="application/x-vsd"".vss"="application/vnd.visio"".vst"="application/vnd.visio"".vst"="application/x-vst"".vsw"="application/vnd.visio"".vsx"="application/vnd.visio"".vtx"="application/vnd.visio"".vxml"="text/xml"".wav"="audio/wav"".wax"="audio/x-ms-wax"".wb1"="application/x-wb1"".wb2"="application/x-wb2"".wb3"="application/x-wb3"".wbmp"="image/vnd.wap.wbmp"".wiz"="application/msword"".wk3"="application/x-wk3"".wk4"="application/x-wk4"".wkq"="application/x-wkq"".wks"="application/x-wks"".wm"="video/x-ms-wm"".wma"="audio/x-ms-wma"".wmd"="application/x-ms-wmd"".wmf"="application/x-wmf"".wml"="text/vnd.wap.wml"".wmv"="video/x-ms-wmv"".wmx"="video/x-ms-wmx"".wmz"="application/x-ms-wmz"".wp6"="application/x-wp6"".wpd"="application/x-wpd"".wpg"="application/x-wpg"".wpl"="application/vnd.ms-wpl"".wq1"="application/x-wq1"".wr1"="application/x-wr1"".wri"="application/x-wri"".wrk"="application/x-wrk"".ws"="application/x-ws"".ws2"="application/x-ws"".wsc"="text/scriptlet"".wsdl"="text/xml"".wvx"="video/x-ms-wvx"".xdp"="application/vnd.adobe.xdp"".xdr"="text/xml"".xfd"="application/vnd.adobe.xfd"".xfdf"="application/vnd.adobe.xfdf"".xhtml"="text/html"".xls"="application/vnd.ms-excel"".xls"="application/x-xls"".xlw"="application/x-xlw"".xml"="text/xml"".xpl"="audio/scpls"".xq"="text/xml"".xql"="text/xml"".xquery"="text/xml"".xsd"="text/xml"".xsl"="text/xml"".xslt"="text/xml"".xwd"="application/x-xwd"".x_b"="application/x-x_b"".x_t"="application/x-x_t"".myz"="application/myz"原文地址: