使用PHP的header()函数进行重定向和设置响应头信息
在PHP中,可以使用header()函数来进行重定向和设置响应头信息。header()函数用于发送原始的HTTP头信息,可以用来实现重定向、设置响应状态码、设置响应头部、设置Cookie等操作。下面将介绍header()函数的用法和常见场景。
1. 重定向
重定向是指将用户请求从一个URL自动转向另一个URL。在HTTP协议中,重定向通过设置"Location"响应头部来实现。可以使用header()函数来设置该响应头部并实现重定向。
header("Location: https://www.example.com");
exit;
在上面的例子中,要进行重定向的URL是https://www.example.com。使用header("Location: URL")来设置Location响应头部,并通过exit语句来确保代码执行终止,避免出现意外错误。
2. 设置响应状态码
响应状态码用于指示服务器对请求的处理结果。可以使用header()函数来设置响应状态码,如设置200表示成功、404表示未找到页面、500表示服务器错误等。
header("HTTP/1.1 200 OK");
在上面的例子中,使用header("HTTP/1.1 200 OK")来设置响应状态码为200表示成功。
3. 设置响应头部
header()函数还可以用来设置其他响应头部信息,如设置Content-Type、Cache-Control、Expires、Last-Modified等。
header("Content-Type: text/html; charset=utf-8");
header("Cache-Control: max-age=3600");
header("Expires: " . gmdate("D, d M Y H:i:s", time() + 3600) . " GMT");
在上面的例子中,设置Content-Type为text/html; charset=utf-8表示响应内容为HTML格式,字符编码为UTF-8;设置Cache-Control为max-age=3600表示浏览器缓存该响应结果1小时;设置Expires为当前时间1小时后的GMT时间。
4. 设置Cookie
Cookie是一种在Web浏览器中存储信息的机制,可以使用header()函数来设置响应中的Set-Cookie头部来发送Cookie给浏览器。
header("Set-Cookie: username=john; expires=" . gmdate("D, d M Y H:i:s", time() + 3600) . " GMT; path=/");
在上面的例子中,通过header("Set-Cookie: ...")来设置Cookie的键值对和一些其他属性,如设置过期时间为1小时后,路径为根路径。
需要注意的是,header()函数必须在任何实际输出之前调用,包括HTML标记和空格,否则会导致"Headers already sent"错误。
