Home  >  Article  >  Backend Development  >  Detailed explanation of header and content-type parameters in PHP_PHP Tutorial

Detailed explanation of header and content-type parameters in PHP_PHP Tutorial

WBOY
WBOYOriginal
2016-07-13 17:45:161022browse

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

header() is used to send HTTP Header. replace is an optional parameter, indicating whether to replace a previous similar header,
Or add a second header of the same type. The default is replacement, but if you pass the FALSE parameter to the second parameter (i.e. replace), you
Can force the use of multiple headers of the same type. For example:

header(’WWW-Authenticate: Negotiate’);
header(’WWW-Authenticate: NTLM’, false);
?>

The second optional parameter http_response_code forces the value of the HTTP response code. (PHP>4.3.0)

There are two specific header calls. One is that the header starts with the string "HTTP/" (case does not matter), which uses
to specify the HTTP status code issued. For example, if you have configured Apache to use javascript:;" onClick="javascript:tagshow(event, 'PHP');" target="_self">PHP script to handle requests
file does not exist (using the ErrorDocument directive), you may want to make sure your script generates an appropriate status code:

header("HTTP/1.0 404 Not Found");
?>

Note: The HTTP status line is always sent to the client first, regardless of when you actually call the header() function.
Unless your HTTP header has already been sent, at any time, the status will be used by the header() function with a new
Status line override.
In PHP 3, only PHP modules compiled into Apache are, and the same effect can be achieved with the following Staus Header

header("Status: 404 Not Found");
?>

The second special case is the "Location:" header. If no certain 3xx status code has been issued, it is not only
The Location line is emitted, and a redirect status code (302) is emitted.

header("Location: http://www.BkJia.com");
exit;
?>

Note: HTTP/1.1 requires an absolute URI as the Location parameter: including protocol header, host name and absolute path,
But some clients can accept relative URIs. You can use $_SERVER['HTTP_HOST'] $_SERVER['PHP_SELF'] and
dirname() to generate an absolute URI from a relative URI.

header("Location: http://" . $_SERVER['HTTP_HOST']
.dirname($_SERVER['PHP_SELF'])
. "/" . $relative_url);
?>

PHP scripts usually generate some dynamic content that does not have to be cached by the client's browser or proxy server. Many proxies and clients can
Force caching to be disabled:

// Time always passes
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
// Files are always modified
header(”Last-Modified: ” . gmdate(”D, d M Y H:i:s”) . ” GMT”);

// HTTP/1.1
header("Cache-Control: no-store, no-cache, must-revalidate");
header(”Cache-Control: post-check=0, pre-check=0〃, false);

// HTTP/1.0
header("Pragma: no-cache");
?>

Note: You may find that even if you do not output the above header, your page still cannot be cached. There may be several options that have changed the default
Caching behavior. See sessrion_cache_limiter().

If you want to prompt the user to save the data you sent in the past, such as a generated PDF file, you can use Content_Dispostion
header to provide a recommended file name, forcing the browser to display a save dialog.

header(’Content-type: application/pdf’);
header(’Content-Disposition: attachment; filename="downloaded.pdf"‘);
readfile(’original.pdf’);
?>

For IE, add the Connection header
header("HTTP/1.1 301 Moved Permanently");
header(”Location: “.$url);
header("Connection: close");

header 中Content-type的种类 Content-type 的说明:
'hqx' -> 'application/mac-binhex40',
'cpt' -> 'application/mac-compactpro',
'doc' -> 'application/msword',
'bin' -> 'application/octet-stream',
'dms' -> 'application/octet-stream',
'lha' -> 'application/octet-stream',
'lzh' -> 'application/octet-stream',
'exe' -> 'application/octet-stream',
'class' -> 'application/octet-stream',
'so' -> 'application/octet-stream',
'dll' -> 'application/octet-stream',
'oda' -> 'application/oda',
'pdf' -> 'application/pdf',
'ai' -> 'application/postscript',
'eps' -> 'application/postscript',
'ps' -> 'application/postscript',
'smi' -> 'application/smil',
'smil' -> 'application/smil',
'mif' -> 'application/vnd.mif',
'xls' -> 'application/vnd.ms-excel',
'ppt' -> 'application/vnd.ms-powerpoint',
'wbxml' -> 'application/vnd.wap.wbxml',
'wmlc' -> 'application/vnd.wap.wmlc',
'wmlsc' -> 'application/vnd.wap.wmlscriptc',
'bcpio' -> 'application/x-bcpio',
'vcd' -> 'application/x-cdlink',
'pgn' -> 'application/x-chess-pgn',
'cpio' -> 'application/x-cpio',
'csh' -> 'application/x-csh',
'dcr' -> 'application/x-director',
'dir' -> 'application/x-director',
'dxr' -> 'application/x-director',
'dvi' -> 'application/x-dvi',
'spl' -> 'application/x-futuresplash',
'gtar' -> 'application/x-gtar',
'hdf' -> 'application/x-hdf',
'js' -> 'application/x-javas
cript',
'skp' -> 'application/x-koan',
'skd' -> 'application/x-koan',
'skt' -> 'application/x-koan',
'skm' -> 'application/x-koan',
'latex' -> 'application/x-latex',
'nc' -> 'application/x-netcdf',
'cdf' -> 'application/x-netcdf',
'sh' -> 'application/x-sh',
'shar' -> 'application/x-shar',
'swf' -> 'application/x-shockwave-flash',
'sit' -> 'application/x-stuffit',
'sv4cpio' -> 'application/x-sv4cpio',
'sv4crc' -> 'application/x-sv4crc',
'tar' -> 'application/x-tar',
'tcl' -> 'application/x-tcl',
'tex' -> 'application/x-tex',
'texinfo' -> 'application/x-texinfo',
'texi' -> 'application/x-texinfo',
't' -> 'application/x-troff',
'tr' -> 'application/x-troff',
'roff' -> 'application/x-troff',
'man' -> 'application/x-troff-man',
'me' -> 'application/x-troff-me',
'ms' -> 'application/x-troff-ms',
'ustar' -> 'application/x-ustar',
'src' -> 'application/x-wais-source',
'xhtml' 'application/xhtml+xml',
'xht' -> 'application/xhtml+xml',
'zip' -> 'application/zip',
'au' -> 'audio/basic',
'snd' -> 'audio/basic',
'mid' -> 'audio/midi',
'midi' -> 'audio/midi',
'kar' -> 'audio/midi',
'mpga' -> 'audio/mpeg',
'mp2' -> 'audio/mpeg',
'mp3' -> 'audio/mpeg',
'aif' -> 'audio/x-aiff',
'aiff' -> 'audio/x-aiff',
'aifc' -> 'audio/x-aiff',
'm3u' -> 'audio/x-mpegurl',
'ram' -> 'audio/x-pn-realaudio',
'rm' -> 'audio/x-pn-realaudio',
'rpm' -> 'audio/x-pn-realaudio-plugin',
'ra' -> 'audio/x-realaudio',
'wav' -> 'audio/x-wav',
'pdb' -> 'chemical/x-pdb',
'xyz' -> 'chemical/x-xyz',
'bmp' -> 'image/bmp',
'gif' -> 'image/gif',
'ief' -> 'image/ief',
'jpeg' -> 'image/jpeg',
'jpg' -> 'image/jpeg',
'jpe' -> 'image/jpeg',
'png' -> 'image/png',
'tiff' -> 'image/tiff',
'tif' -> 'image/tiff',
'djvu' -> 'image/vnd.djvu',
'djv' -> 'image/vnd.djvu',
'wbmp' -> 'image/vnd.wap.wbmp',
'ras' -> 'image/x-cmu-raster',
'pnm' -> 'image/x-portable-anymap',
'pbm' -> 'image/x-portable-bitmap',
'pgm' -> 'image/x-portable-graymap',
'ppm' -> 'image/x-portable-pixmap',
'rgb' -> 'image/x-rgb',
'xbm' -> 'image/x-xbitmap',
'xpm' -> 'image/x-xpixmap',
'xwd' -> 'image/x-xwindowdump',
'igs' -> 'model/iges',
'iges' -> 'model/iges',
'msh' -> 'model/mesh',
'mesh' -> 'model/mesh',
'silo' -> 'model/mesh',
'wrl' -> 'model/vrml',
'vrml' -> 'model/vrml',
'css' -> 'text/css',
'html' -> 'text/html',
'htm' -> 'text/html',
'asc' -> 'text/plain',
'txt' -> 'text/plain',
'rtx' -> 'text/richtext',
'rtf' -> 'text/rtf',
'sgml' -> 'text/sgml',
'sgm' -> 'text/sgml',
'tsv' -> 'text/tab-separated-values',
'wml' -> 'text/vnd.wap.wml',
'wmls' -> 'text/vnd.wap.wmlscript',
'etx' -> 'text/x-setext',
'xsl' -> 'text/xml',
'xml' -> 'text/xml',
'mpeg' -> 'video/mpeg',
'mpg' -> 'video/mpeg',
'mpe' -> 'video/mpeg',
'qt' -> 'video/quicktime',
'mov' -> 'video/quicktime',
'mxu' -> 'video/vnd.mpegurl',
'avi' -> 'video/x-msvideo',
'movie' -> 'video/x-sgi-movie',
'ice' -> 'x-conference/x-cooltalk'

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/478684.htmlTechArticlevoid header ( string string [, bool replace [, int http_response_code]] ) void header ( string string [, bool replace [, int http_response_code]] ) header()是用来发送 HTTP Hea...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn