header的使用:
header()函数的作用是给客户端发送头信息。必须在体内容之前,如果一旦有任何输出了的话,header函数写的头信息就没用了(可以通过设置:output_buffer来解决)
看error log里有没有,xampp/wamp默认的设置是比较注重安全的(而不是默认注重开发易用性的),不会把报错信息直接显示在网页上。Php.ini中outputbuffer设置吧
头信息有什么用呢?
头信息的作用很多,最主要的有下面几个:
1、跳转:当浏览器接受到头信息中的 Location: xxxx 后,就会自动跳转到 xxxx 指向的URL地址。
2、指定网页的内容: 同样一个XML文件,如果头信息中指定:Content-type: application/xml 的话,浏览器会将其按照XML文件格式解析。但是,如果头信息中是:Content-type:text/xml 的话,浏览器就会将其看作存文本解析。(浏览器不是按照扩展名解析文件的)
3、附件:下载东西,
// 指定内容为附件
header('Content-Disposition:attachment; filename="downloaded.pdf"');
// 打开文件,并输出
readfile('original.pdf');
定义和用法
header() 函数向客户端发送原始的 HTTP 报头。
认识到一点很重要,即必须在任何实际的输出被发送之前调用 header() 函数(在 PHP 4 以及更高的版本中,您可以使用输出缓存来解决此问题):
<html>
<?php
// 结果出错
// 在调用 header() 之前已存在输出
header('Location:http://www.example.com/');
?>
语法
header(string,replace,http_response_code)
例子 1
<?php
// Date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");
?>
<html>
<body>
...
...
注释:用户可能会设置一些选项来更改浏览器的默认缓存设置。通过发送上面的报头,您可以覆盖任何这些设置,强制浏览器不进行缓存!
例子 2
<?php
header('Content-type:application/image/pjpeg');//输出的类型
header('Content-Disposition:attachment; filename="downloaded.jpg"'); //下载显示的名字,注意格式
readfile('my.jpg');
// 并将这个文件以前面header发送信息设定的类型输出,从而会弹出一个下载框
// 就是把服务器上的my.jpg下载下来,下载显示和保存的名字默认是downloaded.jpg
例子3
编码方式
header("Content-type:text/html; charset=utf-8");
<metahttp-equiv="Content-Type" content="text/html;charset=utf-8" />