PHP中的header()函数:发送原始HTTP标头给客户端
header()函数是PHP中一个常用的函数,用于发送原始HTTP标头给客户端。它常用于在服务器端与客户端之间通信,控制网页的跳转、缓存、文件下载、设置Cookie等操作。
header()函数有两个参数,第一个参数是要发送的原始HTTP标头,第二个参数是可选的,用于指定该标头是否立即发送。如果第二个参数设置为true,表示立即发送标头;如果设置为false(默认值),则会在脚本结束时发送标头。
下面是一些header()函数常用的应用示例:
1. 控制网页的跳转:
header("Location: http://www.example.com");
该语句将当前页面跳转到指定的URL地址。其中Location是HTTP协议中用于重定向的标头字段。
2. 设置缓存:
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
这段代码指示客户端不要缓存当前页面,并在1997年7月26日5点之后过期。这样可以确保每次请求都是从服务器直接获取最新的页面内容。
3. 强制文件下载:
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=example.pdf");
header("Content-Length: " . filesize("example.pdf"));
readfile("example.pdf");
这段代码将指定的文件以附件的形式强制下载到客户端。其中Content-Type标头用于指定下载文件的文件类型,Content-Disposition标头用于设置附件的文件名和下载方式,Content-Length标头指示下载文件的大小。
4. 设置Cookie:
header("Set-Cookie: name=value; expires=Thu, 31-Dec-2020 23:59:59 GMT; path=/");
这段代码设置一个名为name的Cookie,具有值为value,过期时间为2020年12月31日23点59分59秒的属性,路径为根目录。
需要注意的是,header()函数必须在其他任何输出之前调用,包括HTML标签、空格、换行等。如果在header()函数之前有任何输出,将会导致函数调用失败。
此外,使用header()函数发送HTTP标头时,也需要确保没有输出任何HTML或其他内容,否则可能会导致错误。
