PHP header()

PHP header()

header()是PHP的一个预定义网络函数,它向客户端发送一个原始的HTTP头。关于header()函数的一个重要注意点是,它必须在发送任何实际输出之前调用。

header()函数以原始形式将HTTP头发送给客户端或浏览器。在发送任何其他输出之前,HTTP函数会操作Web服务器发送给客户端或浏览器的信息。

语法

void header (string header, booleanreplace = TRUE, int $http_response_code)

参数

header()函数接受三个参数,下面会详细讨论:

$header(必需)

header参数包含要发送的头字符串。这个函数有两种特殊的头调用方式。

第一个头以”HTTP/”为开头,指定要发送的HTTP状态码。

第二种特殊情况的头以”Location:”为开头。它不仅将头发送回浏览器,还会向浏览器提供REDIRECT(302)状态码,直到已经设置了201或3xx状态码。

$replace(可选)

此参数用于指定是否应该用头替换先前的相同头,还是添加另一个相同类型的头。$replace是一个布尔类型的可选参数。

默认值是TRUE,这意味着它替换先前的相同头。但如果作为第二个参数传递FALSE,则可以绑定多个相同类型的头。

http_response_code(可选)

$http_response_code是一个可选参数,可以强制将HTTP响应代码设置为指定的值。

注意:如果头不为空,http_response_code参数会产生效果。

返回值

PHP的header()函数不返回任何值。

变更

在PHP版本5.1.2之后,为了防止头注入攻击,该函数停止发送多个头。它每次只允许发送一个头。

用途

  • 它改变页面位置。
  • 它设置时区。
  • 它发送STOP状态。
  • 此函数设置缓存控制。
  • 它启动强制下载。

示例

通过下面的示例,您可以了解header()函数在运行时环境中的实际工作。

示例1:重定向浏览器

以下代码将重定向用户到另一个页面。

<?php
    // This will redirect the user to the new location
    header('Location: http://www.javatpoint.com/');

    //The below code will not execute after header
    exit;
?>

输出

它将重定向到上面程序中header()函数给定的新URL位置,即, www.javatpoint.com 。如果在header()函数之后写入任何代码,则不会执行。

PHP header()

示例2:重定向间隔

以下代码将会在 10秒重定向 用户到另一个页面。

<?php
    // This will redirect after 10 seconds
    header('Refresh: 10; url = http://www.javatpoint.com/');
    exit;
?>

输出

The output will be same as the example 1, but it will take 10 seconds to load.

注意:header()函数之后的任何代码都不会执行。

示例3:不缓存页面

通过使用以下代码,您可以阻止浏览器缓存页面。

<?php
    // PHP program to describes header function 

    // Set a past date 
    header("Expires: Tue, 03 March 2001 04:50:34 GMT"); 
    header("Cache-Control: no-cache"); 
    header("Pragma: no-cache"); 
?>
<html> 
    <body> 
    <p>Hello Javatpoint!</p> 

    <!-- PHP program to display 
    header list --> 
    <?php 
        print_r(headers_list()); 
    ?> 
    </body> 
</html>

输出

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,其中包括主机名、方案和绝对路径,而大多数现代客户端接受相对URI作为 Location 的参数。要创建绝对URI,您可以使用 $SERVER[‘PHP_SELF’] , $SERVER[‘HTTP_HOST’] 和dirname()。

示例4

创建两个PHP文件,其中一个文件包含标题文件的代码,另一个文件在浏览器中重定向到一个新页面。

headercheck.php

<?php
    host  =_SERVER['HTTP_HOST'];
    uri   = rtrim(dirname(_SERVER['PHP_SELF']), '/\\');
    newpage = 'welcome.php';

    /* Redirect to a different page requested in the current directory*/
    header("Location: http://hosturi/newpage");
    exit;
?>

welcome.php

<!-- welcome.php file redirect to new page -->
<html>
        <head>
            <title> Welcome page </title>
        </head>
        <body>
            <h1> <center> Welcome to javaTpoint </center> </h1>
        </body>
</html>

输出

PHP header()

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程