欢迎访问宙启技术站
智能推送

PHP中的header()函数:发送原始HTTP标头给客户端

发布时间:2023-07-03 22:31:34

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或其他内容,否则可能会导致错误。