📅  最后修改于: 2020-09-29 07:26:37             🧑  作者: Mango
header()是PHP的预定义网络函数,它将原始HTTP标头发送到客户端。关于header()函数要注意的重要一点是,必须在发送任何实际输出之前调用它。
header()函数将原始格式的HTTP标头发送到客户端或浏览器。在发送任何其他输出之前,HTTP函数会处理Web服务器发送到客户端或浏览器的信息。
void header (string $header, boolean $replace = TRUE, int $http_response_code)
header()函数接受三个参数,下面将详细讨论:
header参数包含要发送的标题字符串。此函数有两种特殊的标头调用。
第一个标头以“HTTP/”字符串开头,该字符串查找要发送的HTTP状态代码。
标头的第二个特殊情况以“Location:”标头开始。它不仅将标头发送回浏览器,而且还向浏览器提供REDIRECT(302)状态代码,直到已经设置了201或3xx状态代码。
此参数用于指定是将先前的相同标头替换为标头还是添加另一个相同类型的标头。$replace是布尔类型的可选参数。
默认值为TRUE,这意味着它将替换先前的相同标头。但是,如果将FALSE作为第二个参数传递,则可以绑定多个相同类型的标头。
$http_response_code是一个可选参数,用于将HTTP响应代码强制为指定值。
注意:如果标题不为空白,则http_response_code参数有效。
PHPheader()函数不返回任何值。
在PHP版本5.1.2之后,此函数停止发送多个头,以防止头注入攻击。一次只允许一个标头。
借助以下示例,您可以了解header()函数在运行时环境中的实际工作-
以下代码会将您的用户重定向到其他页面。
输出量
它将重定向到新的URL位置,该位置在上述程序的header()函数中给出,即www.javatpoint.com。如果在header()之后写了任何代码行,它将不会执行。
以下代码将在10秒后将您的用户重定向到另一个页面。
输出量
The output will be same as the example 1, but it will take 10 seconds to load.
注意:如果在header() 函数之后写入了任何代码行,它将不会执行。
通过使用以下代码,可以防止浏览器缓存页面。
Hello Javatpoint!
输出量
Hello Javatpoint!
Array (
[0] => X-Powered-By: PHP/7.3.13
[1] => Expires: Tue, 03 March 2001 04:50:34 GMT
[2] => Cache-Control: no-cache
[3] => Pragma: no-cache
)
一些较旧的客户端需要绝对URI,其中包括主机名,方案和绝对路径,而大多数现代客户端都接受相对URI作为Location的参数。要创建绝对URI,可以使用$SERVER[‘PHP_SELF’],$SERVER[‘HTTP_HOST’]和dirname()。
创建两个php文件,其中一个用于包含头文件代码,另一个用于重定向到浏览器上的新页面。
headercheck.php
welcome.php
Welcome page
Welcome to javaTpoint
输出量