PHP的header()函数的用法是什么?
来源:青灯夜游
发布时间:2019-03-02 17:24:26
阅读量:901
header()函数是PHP中的内置函数,可以用于发送原始HTTP标头。下面本篇文章就来带大家了解一下header()函数,介绍几种header()函数的用法,希望对大家有所帮助。【视频教程推荐:PHP教程】
header()函数
PHP header()函数的作用:以原始形式将HTTP标头发送到客户端或浏览器。在将HTML,XML,JSON或其他输出发送到浏览器或客户端之前,原始数据与服务器发出的请求(尤其是HTTP请求)一起作为标头信息发送出去。HTTP标头提供了关于消息体(更准确地说是关于请求和响应)中发送的对象的所需信息。
基本句式:
1 | void header( $header , $replace = TRUE, $http_response_code )
|
参数:
$header:用于保存标题字符串。有两种类型的标头调用,第一种是以字符串“HTTP /”开头,用于确定要发送的HTTP状态代码;第二种是“Location:”开头,这是强制性参数。
$replace:用于表示标题应该替换前一个或添加第二个标题,可省略。默认值为True(将替换),如果$replace值为False,则强制使用相同类型的多个标头。
$http_response_code:用于强制HTTP响应代码为指定值(PHP 4.3及更高版本),可省略。
header()函数的用法
1、重定向到URL,进行跳转页面
1 2 3 4 | <?php
header( "Location: http://www.php.cn" );
exit ;
?>
|
还可以调整跳转时间,设置在某个时间后执行跳转
1 2 3 4 | <?php
header( "Refresh: 5; url= http://www.php.cn" );
exit ;
?>
|
2、设置缓存控件,控制浏览器的缓存
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php
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" );
?>
<html>
<body>
<p>Hello World!</p>
<?php
var_dump(headers_list());
?>
</body>
</html>
|
输出:
示例说明:
上面的示例,表示禁用缓存,可以帮助浏览器防止缓存,让浏览器每次请求本页时都要到服务器上取最新版本的内容。
注:header()函数在示例中多次使用,因为只允许一次发送一个标头(自PHP 4.4起),以防止标头注入攻击。
3、设置网络文件的类型、字符编码、语言、内容长度
1 2 3 4 5 6 7 8 9 10 11 | header( "Content-Language: charset=zh-cn" );
header( 'Content-Length: 39344' );
header( "Content-type: text/html; charset=GB2312" );
header( "content-type:text/html;charset=utf-8" );
|
4、发送HTTP状态
以下是一些常见的HTTP状态:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php
header( 'HTTP/1.1 200 OK' );
header( 'HTTP/1.1 301 Moved Permanently' );
header( 'HTTP/1.1 304 Not Modified' );
header( 'HTTP/1.1 401 Unauthorized' );
header( 'HTTP/1.1 403 Forbidden' );
header( 'HTTP/1.1 404 Not Found' );
header( 'HTTP/1.1 500 Internal Server Error' );
?>
|
5、执行http验证,显示信息
1 2 3 4 5 | <?php
header( 'HTTP/1.1 401 Unauthorized' );
header( 'WWW-Authenticate: Basic realm="登录信息"' );
echo '显示的信息!' ;
?>
|
6、设置头文件类型,可以用于流文件或者文件下载
1 2 3 4 | header( 'Content-Type: application/octet-stream' );
header( 'Content-Disposition: attachment; filename="example.zip"' );
header( 'Content-Transfer-Encoding: binary' );
header( 'Content-Length: ' . filesize ( 'example.zip' ));
|