In the previous article, I introduced some situations of the header() function in PHP. Let me add some more here.
The following are detailed instructions for using the header function:
No matter how many headers the page has, it will execute the last one, but it is conditional, for example:
header('Location:http://www.bkjia.com'); header('Location:http://www.g.cn'); header('Location:http://www.baidu.com');
This will jump to Baidu
PHP only sends the header of the HTML document to the browser using the HTTP protocol and tells the browser how to process the page. As for the transmitted content, you need to be familiar with the HTTP protocol and has nothing to do with PHP.
Traditional headers must contain one of the following three headers and can only appear once.
Location: xxxx:yyyy/zzzz Content-Type: xxxx/yyyy Status: nnn xxxxxx
The HTTP protocol is based on the request/response paradigm. After a client establishes a connection with the server, it sends a request to the server. The format of the request is a uniform resource identifier, a protocol version number, followed by MIME information including request modifiers, client information and possible content. After receiving the request, the server gives corresponding response information. Its format is a status line including the protocol version number of the information, a success or error code, followed by MIME information including server information, entity information and possible content.
It is divided into four processes. In the HTTP protocol, the server refers to the part that provides HTTP services, and the client refers to the browser or download tool you use, etc. During communication, the client sends a request for connection, and the server establishes the connection; then, the client sends an HTTP request (Request), and the server returns response information (Respond), thus completing an HTTP operation.
1×× 保留 2×× 表示请求成功地接收 3×× 为完成请求客户需进一步细化请求 4×× 客户错误 5×× 服务器错误
<?php Header("Location: http://www.php.net/"); ?>
<?php //告诉浏览器此页面的过期时间(用格林威治时间表示),只要是已经过去的日期即可。 header("Expires: Mon, 26 Jul 1970 05:00:00 GMT"); //告诉浏览器此页面的最后更新日期(用格林威治时间表示)也就是当天,目的就是强迫浏览器获取最新资料 header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); //告诉客户端浏览器不使用缓存 header("Cache-Control: no-cache, must-revalidate"); //参数(与以前的服务器兼容),即兼容HTTP1.0协议 header("Pragma: no-cache"); //输出MIME类型 header("Content-type: application/file"); //文件长度 header("Content-Length: 227685"); //接受的范围单位 header("Accept-Ranges: bytes"); //缺省时文件保存对话框中的文件名称 header("Content-Disposition: attachment; filename=$filename"); ?>
<?php header('HTTP/1.1 401 Unauthorized'); header('status: 401 Unauthorized'); ?>
For example, if you want to restrict a user from accessing this page, you can set the status to 404, as shown below, so that the browser will display that the page does not exist.
<?php header('HTTP/1.1 404 Not Found'); header("status: 404 Not Found"); ?>
Note: Traditional headers must contain one of the following three headers and can only appear once. Content-Type: xxxx/yyyy Location: xxxx:yyyy/zzzz Status: nnn xxxxxx can appear more than twice in the new multipart header specification (Multipart MIME).
Header("Location: http://www.php.net/"); exit;
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");
header("Status: 404 Not Found");
header("Content-type: application/x-gzip"); header("Content-Disposition: attachment; filename=文件名"); header("Content-Description: PHP3 Generated Data");